diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Revision history for `libheif-hs`
+
+## 0.1.0.0 -- 2026-09-07
+
+* Initial release
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,68 @@
+# libheif-hs
+
+A minimal Haskell library that decodes `.HEIC` files via 
+[libheif](https://github.com/strukturag/libheif) C bindings.
+
+This package is a standard Cabal project designed to integrate seamlessly with 
+[Nix flakes](https://wiki.nixos.org/wiki/Flakes). 
+It currently exposes a core subset of the HEIF format's available data, with 
+built-in support for WebAssembly (`wasm32-wasi`) cross-compilation.
+
+## Usage
+
+The flake outputs provide the following packages for each supported system:
+
+* `packages.default`: The natively compiled Cabal package.
+* `packages.wasm`: The WebAssembly cross-compiled Cabal package.
+
+*Note: If you are not using Nix, this functions as a standard Cabal package (see below).*
+
+## How to use the Cabal package without a flake shell
+
+Since some project dependencies (`hs-bindgen-runtime`) are not yet published to hackage, you 
+must add them them from `cabal.project` in this repository into your local `cabal.project` 
+file.
+
+You'll also need the following libraries present in pkg-config compiled with at least the flags 
+seen the flake:
+
+* kvazaar-2.3.2 (to encode HEIF)
+* libde265-1.1.1 (to decode HEIF)
+* libheif-1.23.1
+
+## Development
+
+The repository provides two distinct Nix development shells depending on your target environment.
+
+**Native Development**
+
+For standard system development (includes tooling support like Haskell Language Server):
+
+```bash
+nix develop .#default
+cabal test libheif-hs-test
+```
+
+**WebAssembly Development**
+
+For wasm32-wasi cross-compilation testing:
+
+```bash
+nix develop .#wasm
+wasm-test libheif-hs-test
+```
+
+**Nix flake checking**
+
+For testing that both output packages build correctly:
+
+```bash
+nix flake check
+```
+
+# Future work
+
+* Expanded API: expose more features of the underlying libheif interface.
+* Broader codec support: the dependent libheif is currently compiled only with HEIF format
+    support. Future versions might expose additional encode/decode formats supported by
+    libheif such as AVIF, VVC, JPEG, etc.
diff --git a/cbits/heif_context_write_shim.c b/cbits/heif_context_write_shim.c
new file mode 100644
--- /dev/null
+++ b/cbits/heif_context_write_shim.c
@@ -0,0 +1,34 @@
+#include <libheif/heif.h>
+
+// Why this file: Haskell cannot marshal FFI functions that return a struct, and the decoder takes 
+// a callback that returns a heif_error. This is a helper to address this limitations of the FFI
+
+// Define the simpler signature for your Haskell callback (returns int, not struct)
+typedef int (*hs_write_callback)(struct heif_context* ctx, const void* data, size_t size, void* userdata);
+
+// The C trampoline that libheif will actually execute
+static struct heif_error c_trampoline(struct heif_context* ctx, const void* data, size_t size, void* userdata) {
+    // We expect Haskell to pass its FunPtr inside the userdata parameter!
+    hs_write_callback hs_cb = (hs_write_callback)userdata;
+    
+    // Execute Haskell callback
+    int hs_status = hs_cb(ctx, data, size, userdata);
+    
+    // Wrap the integer result into the struct by value
+    struct heif_error err;
+    if (hs_status == 0) {
+        err.code = heif_error_Ok;
+        err.subcode = heif_suberror_Unspecified;
+        err.message = 0;
+    } else {
+        err.code = heif_error_Encoding_error;
+        err.subcode = heif_suberror_Unspecified;
+        err.message = "Error in Haskell writer callback";
+    }
+    return err;
+}
+
+// Expose the pointer to this C function so Haskell can plug it into heif_writer
+void* get_c_trampoline_ptr() {
+    return (void*)c_trampoline;
+}
diff --git a/cbits/wasi_exception_stubs.c b/cbits/wasi_exception_stubs.c
new file mode 100644
--- /dev/null
+++ b/cbits/wasi_exception_stubs.c
@@ -0,0 +1,4 @@
+void* __cxa_allocate_exception(__SIZE_TYPE__ size) { __builtin_trap(); return 0; }
+void __cxa_throw(void* thrown_exception, void* tinfo, void* dest) { __builtin_trap(); }
+void* __cxa_begin_catch(void* exceptionObject) { __builtin_trap(); return 0; }
+void __cxa_end_catch(void) { __builtin_trap(); }
diff --git a/cbits/wasi_posix_stubs.c b/cbits/wasi_posix_stubs.c
new file mode 100644
--- /dev/null
+++ b/cbits/wasi_posix_stubs.c
@@ -0,0 +1,10 @@
+#if defined(__wasi__)
+
+// Provide missing POSIX file functions for WASI
+typedef int sem_t;
+
+inline int mkstemp(char* template_name) {
+    return -1; // Always return -1 (error) so libheif knows the file wasn't created
+}
+
+#endif
diff --git a/libheif-hs.cabal b/libheif-hs.cabal
new file mode 100644
--- /dev/null
+++ b/libheif-hs.cabal
@@ -0,0 +1,101 @@
+cabal-version:   3.0
+name:            libheif-hs
+version:         0.1.0.0
+synopsis:        Haskell FFI bindings to libheif
+license:         MIT
+build-type:      Simple
+category:        Codec, Bindings
+maintainer:      Dragos Ionita
+description:
+  Decodes media in the HEIF format exposing a subset of available operations and
+  data from the underyling C [libheif](https://github.com/strukturag/libheif) library.
+
+extra-doc-files:
+  CHANGELOG.md
+  README.md
+
+source-repository head
+  type:     git
+  location: https://codeberg.org/fusion5/libheif-hs
+
+common shared-properties
+  default-language:   GHC2024
+  default-extensions:
+    CPP
+    DataKinds
+    DeriveFunctor
+    DeriveGeneric
+    GeneralizedNewtypeDeriving
+    ImportQualifiedPost
+    LambdaCase
+    OverloadedStrings
+    QuasiQuotes
+    RecordWildCards
+    ScopedTypeVariables
+    StrictData
+    TemplateHaskell
+    TypeApplications
+
+  ghc-options:
+    -Wall -Wcompat -Widentities -Wincomplete-record-updates
+    -Wincomplete-uni-patterns -Wmissing-export-lists
+    -Wmissing-home-modules -Wno-orphans -Wpartial-fields
+    -Wredundant-constraints -Wunused-packages
+    -Wno-pattern-namespace-specifier -Wno-unrecognised-warning-flags
+
+library
+  import:            shared-properties
+  exposed-modules:
+    Codec.HEIF
+    Codec.HEIF.Error
+
+  other-modules:
+    Codec.HEIF.Bindings
+    Codec.HEIF.Bindings.Generated
+    Codec.HEIF.Bindings.Generated.FunPtr
+    Codec.HEIF.Bindings.Generated.Global
+    Codec.HEIF.Bindings.Generated.Safe
+    Codec.HEIF.Bindings.Generated.Unsafe
+    Codec.HEIF.Error.Internal
+
+  hs-source-dirs:    src
+  build-depends:
+    , base                >=4.7  && <5
+    , bytestring          >=0.11 && <0.13
+    , c-expr-runtime      >=0.1  && <0.2
+    , containers          >=0.5  && <1
+    , hs-bindgen-runtime  >=0.1  && <0.2
+
+  pkgconfig-depends: libheif, libde265, kvazaar
+  c-sources:         cbits/heif_context_write_shim.c
+
+  if arch(wasm32)
+    hs-source-dirs: src-wasm
+    c-sources:
+      cbits/wasi_exception_stubs.c
+      cbits/wasi_posix_stubs.c
+
+    -- fix kvazaar (encoder) stack overflow:
+    ld-options:     "-Wl,-z,stack-size=4194304"
+    ghc-options:    -optl-lwasi-emulated-signal
+
+  else
+    hs-source-dirs: src-native
+
+test-suite libheif-hs-test
+  import:            shared-properties
+  type:              exitcode-stdio-1.0
+  main-is:           Main.hs
+  other-modules:     SampleImage
+  hs-source-dirs:    test
+  build-depends:
+    , base
+    , bytestring
+    , containers
+    , directory   >=1.3.9   && <2
+    , hspec       >=2.11.17 && <2.12
+    , libheif-hs
+    , temporary   >=1.3     && <2
+
+  default-language:  GHC2024 
+  pkgconfig-depends: libheif, libde265, kvazaar
diff --git a/src-native/Codec/HEIF/Bindings/Generated.hs b/src-native/Codec/HEIF/Bindings/Generated.hs
new file mode 100644
--- /dev/null
+++ b/src-native/Codec/HEIF/Bindings/Generated.hs
@@ -0,0 +1,13913 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE EmptyDataDecls #-}
+{-# LANGUAGE ExplicitForAll #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE UnboxedTuples #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+module Codec.HEIF.Bindings.Generated
+    ( Codec.HEIF.Bindings.Generated.lIBHEIF_NUMERIC_VERSION
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_VERSION
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_PLUGIN_DIRECTORY
+    , Codec.HEIF.Bindings.Generated.Heif_error_code(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Ok
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Input_does_not_exist
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Invalid_input
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Unsupported_filetype
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Unsupported_feature
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Usage_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Memory_allocation_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Decoder_plugin_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Encoder_plugin_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Encoding_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Color_profile_does_not_exist
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Plugin_loading_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Canceled
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_End_of_sequence
+    , Codec.HEIF.Bindings.Generated.Heif_suberror_code(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_End_of_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_box_size
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ftyp_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_idat_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_meta_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_hdlr_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_hvcC_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_pitm_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ipco_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ipma_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iloc_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iinf_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iprp_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iref_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_pict_handler
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Ipma_box_references_nonexisting_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_properties_assigned_to_item
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_item_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_grid_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Missing_grid_images
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_clean_aperture
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_overlay_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Overlay_image_outside_of_canvas
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Auxiliary_image_type_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_or_invalid_primary_item
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_infe_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_color_profile_type
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Wrong_tile_image_chroma_format
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_fractional_number
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_image_size
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_pixi_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_av1C_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Wrong_tile_image_pixel_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_NCLX_color_primaries
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_NCLX_transfer_characteristics
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_NCLX_matrix_coefficients
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_region_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ispe_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Camera_intrinsic_matrix_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Camera_extrinsic_matrix_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_J2K_codestream
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_vvcC_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_icbr_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_avcC_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_mini_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Decompression_invalid_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_moov_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_NCLX_colr_VUI_mismatch
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Security_limit_exceeded
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Compression_initialisation_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Nonexisting_item_referenced
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Null_pointer_argument
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Nonexisting_image_channel_referenced
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_plugin_version
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_writer_version
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_parameter
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_parameter_value
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Item_reference_cycle
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_codec
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_image_type
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_data_version
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_color_conversion
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_item_construction_method
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_header_compression_method
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_generic_compression_method
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_essential_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_track_type
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_bit_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Cannot_write_output_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Encoder_initialization
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Encoder_encoding
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Encoder_cleanup
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Too_many_regions
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Plugin_loading_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Plugin_is_not_loaded
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Cannot_read_plugin_directory
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_matching_decoder_installed
+    , Codec.HEIF.Bindings.Generated.Heif_error(..)
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_MAKE_VERSION
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_HAVE_VERSION
+    , Codec.HEIF.Bindings.Generated.Heif_context
+    , Codec.HEIF.Bindings.Generated.Heif_image_handle
+    , Codec.HEIF.Bindings.Generated.Heif_item_id(..)
+    , Codec.HEIF.Bindings.Generated.Heif_property_id(..)
+    , Codec.HEIF.Bindings.Generated.Heif_init_params(..)
+    , Codec.HEIF.Bindings.Generated.Heif_plugin_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_plugin_type_encoder
+    , pattern Codec.HEIF.Bindings.Generated.Heif_plugin_type_decoder
+    , Codec.HEIF.Bindings.Generated.Heif_plugin_info(..)
+    , Codec.HEIF.Bindings.Generated.Heif_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.Heif_chroma(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_planar
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_420
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_422
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_444
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RGB
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RGBA
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBB_BE
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBBAA_BE
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBB_LE
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBBAA_LE
+    , Codec.HEIF.Bindings.Generated.Heif_colorspace(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_YCbCr
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_RGB
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_monochrome
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_custom
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_filter_array
+    , Codec.HEIF.Bindings.Generated.Heif_channel(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Y
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Cb
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Cr
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_R
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_B
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Alpha
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_interleaved
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_filter_array
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_disparity
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_unknown
+    , Codec.HEIF.Bindings.Generated.Heif_image
+    , Codec.HEIF.Bindings.Generated.Heif_scaling_options
+    , Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_algorithm(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_nearest_neighbor
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_average
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_sharp_yuv
+    , Codec.HEIF.Bindings.Generated.Heif_chroma_upsampling_algorithm(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_upsampling_nearest_neighbor
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_upsampling_bilinear
+    , Codec.HEIF.Bindings.Generated.Heif_color_conversion_options(..)
+    , Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode_none
+    , pattern Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode_solid_color
+    , pattern Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode_checkerboard
+    , Codec.HEIF.Bindings.Generated.Heif_color_conversion_options_ext(..)
+    , Codec.HEIF.Bindings.Generated.Heif_color_profile_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_not_present
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_nclx
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_rICC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_prof
+    , Codec.HEIF.Bindings.Generated.Heif_color_primaries(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_709_5
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_470_6_System_M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_470_6_System_B_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_601_6
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_240M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_generic_film
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_ST_428_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_RP_431_2
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_EG_432_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_EBU_Tech_3213_E
+    , Codec.HEIF.Bindings.Generated.Heif_transfer_characteristics(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_709_5
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_470_6_System_M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_601_6
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_SMPTE_240M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_linear
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_logarithmic_100
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_logarithmic_100_sqrt10
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_IEC_61966_2_4
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_1361
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_IEC_61966_2_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_SMPTE_ST_428_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG
+    , Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_RGB_GBR
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_709_5
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_US_FCC_T47
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_601_6
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_SMPTE_240M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_YCgCo
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_SMPTE_ST_2085
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_chromaticity_derived_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ICtCp
+    , Codec.HEIF.Bindings.Generated.Heif_color_profile_nclx(..)
+    , Codec.HEIF.Bindings.Generated.Heif_content_light_level(..)
+    , Codec.HEIF.Bindings.Generated.Heif_mastering_display_colour_volume(..)
+    , Codec.HEIF.Bindings.Generated.Heif_decoded_mastering_display_colour_volume(..)
+    , Codec.HEIF.Bindings.Generated.Heif_ambient_viewing_environment(..)
+    , Codec.HEIF.Bindings.Generated.Heif_brand2(..)
+    , Codec.HEIF.Bindings.Generated.Heif_filetype_result(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_no
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_yes_supported
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_yes_unsupported
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_maybe
+    , Codec.HEIF.Bindings.Generated.Heif_brand(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_unknown_brand
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heic
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heix
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevc
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevx
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heim
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heis
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevm
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevs
+    , pattern Codec.HEIF.Bindings.Generated.Heif_mif1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_msf1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_avif
+    , pattern Codec.HEIF.Bindings.Generated.Heif_avis
+    , pattern Codec.HEIF.Bindings.Generated.Heif_vvic
+    , pattern Codec.HEIF.Bindings.Generated.Heif_vvis
+    , pattern Codec.HEIF.Bindings.Generated.Heif_evbi
+    , pattern Codec.HEIF.Bindings.Generated.Heif_evbs
+    , pattern Codec.HEIF.Bindings.Generated.Heif_j2ki
+    , pattern Codec.HEIF.Bindings.Generated.Heif_j2is
+    , Codec.HEIF.Bindings.Generated.Heif_metadata_compression(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_off
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_auto
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_unknown
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_deflate
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_zlib
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_brotli
+    , Codec.HEIF.Bindings.Generated.Heif_encoder
+    , Codec.HEIF.Bindings.Generated.Heif_depth_representation_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_uniform_inverse_Z
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_uniform_disparity
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_uniform_Z
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_nonuniform_disparity
+    , Codec.HEIF.Bindings.Generated.Heif_depth_representation_info(..)
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH
+    , Codec.HEIF.Bindings.Generated.Heif_entity_group_id(..)
+    , Codec.HEIF.Bindings.Generated.Heif_entity_group(..)
+    , Codec.HEIF.Bindings.Generated.Heif_security_limits(..)
+    , Codec.HEIF.Bindings.Generated.Heif_compression_format(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_HEVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_AVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_JPEG
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_AV1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_VVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_EVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_JPEG2000
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_uncompressed
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_mask
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_HTJ2K
+    , Codec.HEIF.Bindings.Generated.Heif_reading_options
+    , Codec.HEIF.Bindings.Generated.Heif_reader_grow_status(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_size_reached
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_timeout
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_size_beyond_eof
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_error
+    , Codec.HEIF.Bindings.Generated.Heif_reader_range_request_result(..)
+    , Codec.HEIF.Bindings.Generated.Heif_reader(..)
+    , Codec.HEIF.Bindings.Generated.Heif_writer(..)
+    , Codec.HEIF.Bindings.Generated.Heif_unci_image_parameters
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_descriptor
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_parameter
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type_integer
+    , pattern Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type_boolean
+    , pattern Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type_string
+    , Codec.HEIF.Bindings.Generated.Heif_orientation(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_normal
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_flip_horizontally
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_180
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_flip_vertically
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_90_cw_then_flip_horizontally
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_90_cw
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_90_cw_then_flip_vertically
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_270_cw
+    , Codec.HEIF.Bindings.Generated.Heif_encoding_options(..)
+    , Codec.HEIF.Bindings.Generated.Heif_progress_step(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_progress_step_total
+    , pattern Codec.HEIF.Bindings.Generated.Heif_progress_step_load_tile
+    , Codec.HEIF.Bindings.Generated.Heif_decoding_options(..)
+    , Codec.HEIF.Bindings.Generated.Heif_decoder_descriptor
+    , Codec.HEIF.Bindings.Generated.Heif_image_tiling(..)
+    , Codec.HEIF.Bindings.Generated.Heif_component_datatype(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_unsigned_integer
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_floating_point
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_complex_number
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_signed_integer
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_undefined
+    , Codec.HEIF.Bindings.Generated.Heif_complex32(..)
+    , Codec.HEIF.Bindings.Generated.Heif_complex64(..)
+    , Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_monochrome
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_Y
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_Cb
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_Cr
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_red
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_green
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_blue
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_alpha
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_disparity
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_palette
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_filter_array
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_padded
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_cyan
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_magenta
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_yellow
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_key_black
+    , Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection_equirectangular
+    , pattern Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection_cube_map
+    , pattern Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection_flat
+    )
+  where
+
+import qualified C.Expr.HostPlatform
+import qualified HsBindgen.Runtime.CEnum as CEnum
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.HasCField as HasCField
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.Marshal as Marshal
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Struct as Struct
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CompatHasField as BG.CompatHasField
+
+{-| __C declaration:__ @macro LIBHEIF_NUMERIC_VERSION@
+
+    __defined at:__ @libheif\/heif_version.h 31:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_NUMERIC_VERSION :: BG.CInt
+lIBHEIF_NUMERIC_VERSION =
+  (C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform.<<) (1 :: BG.CInt) (24 :: BG.CInt)) ((C.Expr.HostPlatform.<<) (23 :: BG.CInt) (16 :: BG.CInt))) ((C.Expr.HostPlatform.<<) (1 :: BG.CInt) (8 :: BG.CInt))) (0 :: BG.CInt)
+
+{-| __C declaration:__ @macro LIBHEIF_VERSION@
+
+    __C literal:__ @\"1.23.1\"@
+
+    __defined at:__ @libheif\/heif_version.h 34:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_VERSION :: BG.ByteString
+lIBHEIF_VERSION =
+  BG.pack [0x31, 0x2E, 0x32, 0x33, 0x2E, 0x31]
+
+{-| __C declaration:__ @macro LIBHEIF_PLUGIN_DIRECTORY@
+
+    __C literal:__ @\"\/nix\/store\/52p937jmw0wmmvszl0s8nh9jyxajva6g-libheif-1.23.1-lib\/lib\/libheif\"@
+
+    __defined at:__ @libheif\/heif_version.h 36:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_PLUGIN_DIRECTORY :: BG.ByteString
+lIBHEIF_PLUGIN_DIRECTORY =
+  BG.pack [0x2F, 0x6E, 0x69, 0x78, 0x2F, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x2F, 0x35, 0x32, 0x70, 0x39, 0x33, 0x37, 0x6A, 0x6D, 0x77, 0x30, 0x77, 0x6D, 0x6D, 0x76, 0x73, 0x7A, 0x6C, 0x30, 0x73, 0x38, 0x6E, 0x68, 0x39, 0x6A, 0x79, 0x78, 0x61, 0x6A, 0x76, 0x61, 0x36, 0x67, 0x2D, 0x6C, 0x69, 0x62, 0x68, 0x65, 0x69, 0x66, 0x2D, 0x31, 0x2E, 0x32, 0x33, 0x2E, 0x31, 0x2D, 0x6C, 0x69, 0x62, 0x2F, 0x6C, 0x69, 0x62, 0x2F, 0x6C, 0x69, 0x62, 0x68, 0x65, 0x69, 0x66]
+
+{-| __C declaration:__ @enum heif_error_code@
+
+    __defined at:__ @libheif\/heif_error.h 34:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_error_code = Heif_error_code
+  { unwrapHeif_error_code :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_error_code where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_error_code where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_error_code
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_error_code where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_error_code unwrapHeif_error_code2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_error_code2
+
+deriving via Marshal.EquivStorable Heif_error_code instance BG.Storable Heif_error_code
+
+deriving via BG.CUInt instance BG.Prim Heif_error_code
+
+instance CEnum.CEnum Heif_error_code where
+
+  type CEnumZ Heif_error_code = BG.CUInt
+
+  toCEnum = Heif_error_code
+
+  fromCEnum = BG.getField @"unwrapHeif_error_code"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_error_Ok")
+                                   , (1, BG.singleton "Heif_error_Input_does_not_exist")
+                                   , (2, BG.singleton "Heif_error_Invalid_input")
+                                   , (3, BG.singleton "Heif_error_Unsupported_filetype")
+                                   , (4, BG.singleton "Heif_error_Unsupported_feature")
+                                   , (5, BG.singleton "Heif_error_Usage_error")
+                                   , (6, BG.singleton "Heif_error_Memory_allocation_error")
+                                   , (7, BG.singleton "Heif_error_Decoder_plugin_error")
+                                   , (8, BG.singleton "Heif_error_Encoder_plugin_error")
+                                   , (9, BG.singleton "Heif_error_Encoding_error")
+                                   , (10, BG.singleton "Heif_error_Color_profile_does_not_exist")
+                                   , (11, BG.singleton "Heif_error_Plugin_loading_error")
+                                   , (12, BG.singleton "Heif_error_Canceled")
+                                   , (13, BG.singleton "Heif_error_End_of_sequence")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_error_code"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_error_code"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_error_code where
+
+  minDeclaredValue = Heif_error_Ok
+
+  maxDeclaredValue = Heif_error_End_of_sequence
+
+instance Show Heif_error_code where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_error_code where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_error_code" Heif_error_code ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_error_code {unwrapHeif_error_code = y1}
+      , BG.getField @"unwrapHeif_error_code" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_error_code" (BG.Ptr Heif_error_code) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_error_code")
+
+instance HasCField.HasCField Heif_error_code "unwrapHeif_error_code" where
+
+  type CFieldType Heif_error_code "unwrapHeif_error_code" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_error_Ok@
+
+    __defined at:__ @libheif\/heif_error.h 37:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Ok :: Heif_error_code
+pattern Heif_error_Ok = Heif_error_code 0
+
+{-| __C declaration:__ @heif_error_Input_does_not_exist@
+
+    __defined at:__ @libheif\/heif_error.h 40:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Input_does_not_exist :: Heif_error_code
+pattern Heif_error_Input_does_not_exist = Heif_error_code 1
+
+{-| __C declaration:__ @heif_error_Invalid_input@
+
+    __defined at:__ @libheif\/heif_error.h 43:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Invalid_input :: Heif_error_code
+pattern Heif_error_Invalid_input = Heif_error_code 2
+
+{-| __C declaration:__ @heif_error_Unsupported_filetype@
+
+    __defined at:__ @libheif\/heif_error.h 46:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Unsupported_filetype :: Heif_error_code
+pattern Heif_error_Unsupported_filetype = Heif_error_code 3
+
+{-| __C declaration:__ @heif_error_Unsupported_feature@
+
+    __defined at:__ @libheif\/heif_error.h 49:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Unsupported_feature :: Heif_error_code
+pattern Heif_error_Unsupported_feature = Heif_error_code 4
+
+{-| __C declaration:__ @heif_error_Usage_error@
+
+    __defined at:__ @libheif\/heif_error.h 52:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Usage_error :: Heif_error_code
+pattern Heif_error_Usage_error = Heif_error_code 5
+
+{-| __C declaration:__ @heif_error_Memory_allocation_error@
+
+    __defined at:__ @libheif\/heif_error.h 55:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Memory_allocation_error :: Heif_error_code
+pattern Heif_error_Memory_allocation_error = Heif_error_code 6
+
+{-| __C declaration:__ @heif_error_Decoder_plugin_error@
+
+    __defined at:__ @libheif\/heif_error.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Decoder_plugin_error :: Heif_error_code
+pattern Heif_error_Decoder_plugin_error = Heif_error_code 7
+
+{-| __C declaration:__ @heif_error_Encoder_plugin_error@
+
+    __defined at:__ @libheif\/heif_error.h 61:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Encoder_plugin_error :: Heif_error_code
+pattern Heif_error_Encoder_plugin_error = Heif_error_code 8
+
+{-| __C declaration:__ @heif_error_Encoding_error@
+
+    __defined at:__ @libheif\/heif_error.h 64:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Encoding_error :: Heif_error_code
+pattern Heif_error_Encoding_error = Heif_error_code 9
+
+{-| __C declaration:__ @heif_error_Color_profile_does_not_exist@
+
+    __defined at:__ @libheif\/heif_error.h 67:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Color_profile_does_not_exist :: Heif_error_code
+pattern Heif_error_Color_profile_does_not_exist = Heif_error_code 10
+
+{-| __C declaration:__ @heif_error_Plugin_loading_error@
+
+    __defined at:__ @libheif\/heif_error.h 70:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Plugin_loading_error :: Heif_error_code
+pattern Heif_error_Plugin_loading_error = Heif_error_code 11
+
+{-| __C declaration:__ @heif_error_Canceled@
+
+    __defined at:__ @libheif\/heif_error.h 73:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Canceled :: Heif_error_code
+pattern Heif_error_Canceled = Heif_error_code 12
+
+{-| __C declaration:__ @heif_error_End_of_sequence@
+
+    __defined at:__ @libheif\/heif_error.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_End_of_sequence :: Heif_error_code
+pattern Heif_error_End_of_sequence = Heif_error_code 13
+
+{-# COMPLETE
+      Heif_error_Ok
+    , Heif_error_Input_does_not_exist
+    , Heif_error_Invalid_input
+    , Heif_error_Unsupported_filetype
+    , Heif_error_Unsupported_feature
+    , Heif_error_Usage_error
+    , Heif_error_Memory_allocation_error
+    , Heif_error_Decoder_plugin_error
+    , Heif_error_Encoder_plugin_error
+    , Heif_error_Encoding_error
+    , Heif_error_Color_profile_does_not_exist
+    , Heif_error_Plugin_loading_error
+    , Heif_error_Canceled
+    , Heif_error_End_of_sequence
+  #-}
+
+{-| __C declaration:__ @enum heif_suberror_code@
+
+    __defined at:__ @libheif\/heif_error.h 79:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_suberror_code = Heif_suberror_code
+  { unwrapHeif_suberror_code :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_suberror_code where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_suberror_code where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_suberror_code
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_suberror_code where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_suberror_code unwrapHeif_suberror_code2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_suberror_code2
+
+deriving via Marshal.EquivStorable Heif_suberror_code instance BG.Storable Heif_suberror_code
+
+deriving via BG.CUInt instance BG.Prim Heif_suberror_code
+
+instance CEnum.CEnum Heif_suberror_code where
+
+  type CEnumZ Heif_suberror_code = BG.CUInt
+
+  toCEnum = Heif_suberror_code
+
+  fromCEnum = BG.getField @"unwrapHeif_suberror_code"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_suberror_Unspecified")
+                                   , (100, BG.singleton "Heif_suberror_End_of_data")
+                                   , (101, BG.singleton "Heif_suberror_Invalid_box_size")
+                                   , (102, BG.singleton "Heif_suberror_No_ftyp_box")
+                                   , (103, BG.singleton "Heif_suberror_No_idat_box")
+                                   , (104, BG.singleton "Heif_suberror_No_meta_box")
+                                   , (105, BG.singleton "Heif_suberror_No_hdlr_box")
+                                   , (106, BG.singleton "Heif_suberror_No_hvcC_box")
+                                   , (107, BG.singleton "Heif_suberror_No_pitm_box")
+                                   , (108, BG.singleton "Heif_suberror_No_ipco_box")
+                                   , (109, BG.singleton "Heif_suberror_No_ipma_box")
+                                   , (110, BG.singleton "Heif_suberror_No_iloc_box")
+                                   , (111, BG.singleton "Heif_suberror_No_iinf_box")
+                                   , (112, BG.singleton "Heif_suberror_No_iprp_box")
+                                   , (113, BG.singleton "Heif_suberror_No_iref_box")
+                                   , (114, BG.singleton "Heif_suberror_No_pict_handler")
+                                   , (115, BG.singleton "Heif_suberror_Ipma_box_references_nonexisting_property")
+                                   , (116, BG.singleton "Heif_suberror_No_properties_assigned_to_item")
+                                   , (117, BG.singleton "Heif_suberror_No_item_data")
+                                   , (118, BG.singleton "Heif_suberror_Invalid_grid_data")
+                                   , (119, BG.singleton "Heif_suberror_Missing_grid_images")
+                                   , (120, BG.singleton "Heif_suberror_Invalid_clean_aperture")
+                                   , (121, BG.singleton "Heif_suberror_Invalid_overlay_data")
+                                   , (122, BG.singleton "Heif_suberror_Overlay_image_outside_of_canvas")
+                                   , (123, BG.singleton "Heif_suberror_Auxiliary_image_type_unspecified")
+                                   , (124, BG.singleton "Heif_suberror_No_or_invalid_primary_item")
+                                   , (125, BG.singleton "Heif_suberror_No_infe_box")
+                                   , (126, BG.singleton "Heif_suberror_Unknown_color_profile_type")
+                                   , (127, BG.singleton "Heif_suberror_Wrong_tile_image_chroma_format")
+                                   , (128, BG.singleton "Heif_suberror_Invalid_fractional_number")
+                                   , (129, BG.singleton "Heif_suberror_Invalid_image_size")
+                                   , (130, BG.singleton "Heif_suberror_Invalid_pixi_box")
+                                   , (131, BG.singleton "Heif_suberror_No_av1C_box")
+                                   , (132, BG.singleton "Heif_suberror_Wrong_tile_image_pixel_depth")
+                                   , (133, BG.singleton "Heif_suberror_Unknown_NCLX_color_primaries")
+                                   , (134, BG.singleton "Heif_suberror_Unknown_NCLX_transfer_characteristics")
+                                   , (135, BG.singleton "Heif_suberror_Unknown_NCLX_matrix_coefficients")
+                                   , (136, BG.singleton "Heif_suberror_Invalid_region_data")
+                                   , (137, BG.singleton "Heif_suberror_No_ispe_property")
+                                   , (138, BG.singleton "Heif_suberror_Camera_intrinsic_matrix_undefined")
+                                   , (139, BG.singleton "Heif_suberror_Camera_extrinsic_matrix_undefined")
+                                   , (140, BG.singleton "Heif_suberror_Invalid_J2K_codestream")
+                                   , (141, BG.singleton "Heif_suberror_No_vvcC_box")
+                                   , (142, BG.singleton "Heif_suberror_No_icbr_box")
+                                   , (143, BG.singleton "Heif_suberror_No_avcC_box")
+                                   , (149, BG.singleton "Heif_suberror_Invalid_mini_box")
+                                   , (150, BG.singleton "Heif_suberror_Decompression_invalid_data")
+                                   , (151, BG.singleton "Heif_suberror_No_moov_box")
+                                   , (152, BG.singleton "Heif_suberror_NCLX_colr_VUI_mismatch")
+                                   , (1000, BG.singleton "Heif_suberror_Security_limit_exceeded")
+                                   , (1001, BG.singleton "Heif_suberror_Compression_initialisation_error")
+                                   , (2000, BG.singleton "Heif_suberror_Nonexisting_item_referenced")
+                                   , (2001, BG.singleton "Heif_suberror_Null_pointer_argument")
+                                   , (2002, BG.singleton "Heif_suberror_Nonexisting_image_channel_referenced")
+                                   , (2003, BG.singleton "Heif_suberror_Unsupported_plugin_version")
+                                   , (2004, BG.singleton "Heif_suberror_Unsupported_writer_version")
+                                   , (2005, BG.singleton "Heif_suberror_Unsupported_parameter")
+                                   , (2006, BG.singleton "Heif_suberror_Invalid_parameter_value")
+                                   , (2007, BG.singleton "Heif_suberror_Invalid_property")
+                                   , (2008, BG.singleton "Heif_suberror_Item_reference_cycle")
+                                   , (3000, BG.singleton "Heif_suberror_Unsupported_codec")
+                                   , (3001, BG.singleton "Heif_suberror_Unsupported_image_type")
+                                   , (3002, BG.singleton "Heif_suberror_Unsupported_data_version")
+                                   , (3003, BG.singleton "Heif_suberror_Unsupported_color_conversion")
+                                   , (3004, BG.singleton "Heif_suberror_Unsupported_item_construction_method")
+                                   , (3005, BG.singleton "Heif_suberror_Unsupported_header_compression_method")
+                                   , (3006, BG.singleton "Heif_suberror_Unsupported_generic_compression_method")
+                                   , (3007, BG.singleton "Heif_suberror_Unsupported_essential_property")
+                                   , (3008, BG.singleton "Heif_suberror_Unsupported_track_type")
+                                   , (4000, BG.singleton "Heif_suberror_Unsupported_bit_depth")
+                                   , (5000, BG.singleton "Heif_suberror_Cannot_write_output_data")
+                                   , (5001, BG.singleton "Heif_suberror_Encoder_initialization")
+                                   , (5002, BG.singleton "Heif_suberror_Encoder_encoding")
+                                   , (5003, BG.singleton "Heif_suberror_Encoder_cleanup")
+                                   , (5004, BG.singleton "Heif_suberror_Too_many_regions")
+                                   , (6000, BG.singleton "Heif_suberror_Plugin_loading_error")
+                                   , (6001, BG.singleton "Heif_suberror_Plugin_is_not_loaded")
+                                   , (6002, BG.singleton "Heif_suberror_Cannot_read_plugin_directory")
+                                   , (6003, BG.singleton "Heif_suberror_No_matching_decoder_installed")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_suberror_code"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_suberror_code"
+
+instance Show Heif_suberror_code where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_suberror_code where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_suberror_code" Heif_suberror_code ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_suberror_code {unwrapHeif_suberror_code = y1}
+      , BG.getField @"unwrapHeif_suberror_code" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_suberror_code" (BG.Ptr Heif_suberror_code) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_suberror_code")
+
+instance HasCField.HasCField Heif_suberror_code "unwrapHeif_suberror_code" where
+
+  type CFieldType Heif_suberror_code "unwrapHeif_suberror_code" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_suberror_Unspecified@
+
+    __defined at:__ @libheif\/heif_error.h 82:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unspecified :: Heif_suberror_code
+pattern Heif_suberror_Unspecified = Heif_suberror_code 0
+
+{-| __C declaration:__ @heif_suberror_End_of_data@
+
+    __defined at:__ @libheif\/heif_error.h 87:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_End_of_data :: Heif_suberror_code
+pattern Heif_suberror_End_of_data = Heif_suberror_code 100
+
+{-| __C declaration:__ @heif_suberror_Invalid_box_size@
+
+    __defined at:__ @libheif\/heif_error.h 90:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_box_size :: Heif_suberror_code
+pattern Heif_suberror_Invalid_box_size = Heif_suberror_code 101
+
+{-| __C declaration:__ @heif_suberror_No_ftyp_box@
+
+    __defined at:__ @libheif\/heif_error.h 93:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ftyp_box :: Heif_suberror_code
+pattern Heif_suberror_No_ftyp_box = Heif_suberror_code 102
+
+{-| __C declaration:__ @heif_suberror_No_idat_box@
+
+    __defined at:__ @libheif\/heif_error.h 95:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_idat_box :: Heif_suberror_code
+pattern Heif_suberror_No_idat_box = Heif_suberror_code 103
+
+{-| __C declaration:__ @heif_suberror_No_meta_box@
+
+    __defined at:__ @libheif\/heif_error.h 97:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_meta_box :: Heif_suberror_code
+pattern Heif_suberror_No_meta_box = Heif_suberror_code 104
+
+{-| __C declaration:__ @heif_suberror_No_hdlr_box@
+
+    __defined at:__ @libheif\/heif_error.h 99:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_hdlr_box :: Heif_suberror_code
+pattern Heif_suberror_No_hdlr_box = Heif_suberror_code 105
+
+{-| __C declaration:__ @heif_suberror_No_hvcC_box@
+
+    __defined at:__ @libheif\/heif_error.h 101:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_hvcC_box :: Heif_suberror_code
+pattern Heif_suberror_No_hvcC_box = Heif_suberror_code 106
+
+{-| __C declaration:__ @heif_suberror_No_pitm_box@
+
+    __defined at:__ @libheif\/heif_error.h 103:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_pitm_box :: Heif_suberror_code
+pattern Heif_suberror_No_pitm_box = Heif_suberror_code 107
+
+{-| __C declaration:__ @heif_suberror_No_ipco_box@
+
+    __defined at:__ @libheif\/heif_error.h 105:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ipco_box :: Heif_suberror_code
+pattern Heif_suberror_No_ipco_box = Heif_suberror_code 108
+
+{-| __C declaration:__ @heif_suberror_No_ipma_box@
+
+    __defined at:__ @libheif\/heif_error.h 107:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ipma_box :: Heif_suberror_code
+pattern Heif_suberror_No_ipma_box = Heif_suberror_code 109
+
+{-| __C declaration:__ @heif_suberror_No_iloc_box@
+
+    __defined at:__ @libheif\/heif_error.h 109:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iloc_box :: Heif_suberror_code
+pattern Heif_suberror_No_iloc_box = Heif_suberror_code 110
+
+{-| __C declaration:__ @heif_suberror_No_iinf_box@
+
+    __defined at:__ @libheif\/heif_error.h 111:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iinf_box :: Heif_suberror_code
+pattern Heif_suberror_No_iinf_box = Heif_suberror_code 111
+
+{-| __C declaration:__ @heif_suberror_No_iprp_box@
+
+    __defined at:__ @libheif\/heif_error.h 113:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iprp_box :: Heif_suberror_code
+pattern Heif_suberror_No_iprp_box = Heif_suberror_code 112
+
+{-| __C declaration:__ @heif_suberror_No_iref_box@
+
+    __defined at:__ @libheif\/heif_error.h 115:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iref_box :: Heif_suberror_code
+pattern Heif_suberror_No_iref_box = Heif_suberror_code 113
+
+{-| __C declaration:__ @heif_suberror_No_pict_handler@
+
+    __defined at:__ @libheif\/heif_error.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_pict_handler :: Heif_suberror_code
+pattern Heif_suberror_No_pict_handler = Heif_suberror_code 114
+
+{-| __C declaration:__ @heif_suberror_Ipma_box_references_nonexisting_property@
+
+    __defined at:__ @libheif\/heif_error.h 120:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Ipma_box_references_nonexisting_property :: Heif_suberror_code
+pattern Heif_suberror_Ipma_box_references_nonexisting_property = Heif_suberror_code 115
+
+{-| __C declaration:__ @heif_suberror_No_properties_assigned_to_item@
+
+    __defined at:__ @libheif\/heif_error.h 123:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_properties_assigned_to_item :: Heif_suberror_code
+pattern Heif_suberror_No_properties_assigned_to_item = Heif_suberror_code 116
+
+{-| __C declaration:__ @heif_suberror_No_item_data@
+
+    __defined at:__ @libheif\/heif_error.h 126:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_item_data :: Heif_suberror_code
+pattern Heif_suberror_No_item_data = Heif_suberror_code 117
+
+{-| __C declaration:__ @heif_suberror_Invalid_grid_data@
+
+    __defined at:__ @libheif\/heif_error.h 129:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_grid_data :: Heif_suberror_code
+pattern Heif_suberror_Invalid_grid_data = Heif_suberror_code 118
+
+{-| __C declaration:__ @heif_suberror_Missing_grid_images@
+
+    __defined at:__ @libheif\/heif_error.h 132:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Missing_grid_images :: Heif_suberror_code
+pattern Heif_suberror_Missing_grid_images = Heif_suberror_code 119
+
+{-| __C declaration:__ @heif_suberror_Invalid_clean_aperture@
+
+    __defined at:__ @libheif\/heif_error.h 134:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_clean_aperture :: Heif_suberror_code
+pattern Heif_suberror_Invalid_clean_aperture = Heif_suberror_code 120
+
+{-| __C declaration:__ @heif_suberror_Invalid_overlay_data@
+
+    __defined at:__ @libheif\/heif_error.h 137:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_overlay_data :: Heif_suberror_code
+pattern Heif_suberror_Invalid_overlay_data = Heif_suberror_code 121
+
+{-| __C declaration:__ @heif_suberror_Overlay_image_outside_of_canvas@
+
+    __defined at:__ @libheif\/heif_error.h 140:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Overlay_image_outside_of_canvas :: Heif_suberror_code
+pattern Heif_suberror_Overlay_image_outside_of_canvas = Heif_suberror_code 122
+
+{-| __C declaration:__ @heif_suberror_Auxiliary_image_type_unspecified@
+
+    __defined at:__ @libheif\/heif_error.h 142:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Auxiliary_image_type_unspecified :: Heif_suberror_code
+pattern Heif_suberror_Auxiliary_image_type_unspecified = Heif_suberror_code 123
+
+{-| __C declaration:__ @heif_suberror_No_or_invalid_primary_item@
+
+    __defined at:__ @libheif\/heif_error.h 144:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_or_invalid_primary_item :: Heif_suberror_code
+pattern Heif_suberror_No_or_invalid_primary_item = Heif_suberror_code 124
+
+{-| __C declaration:__ @heif_suberror_No_infe_box@
+
+    __defined at:__ @libheif\/heif_error.h 146:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_infe_box :: Heif_suberror_code
+pattern Heif_suberror_No_infe_box = Heif_suberror_code 125
+
+{-| __C declaration:__ @heif_suberror_Unknown_color_profile_type@
+
+    __defined at:__ @libheif\/heif_error.h 148:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_color_profile_type :: Heif_suberror_code
+pattern Heif_suberror_Unknown_color_profile_type = Heif_suberror_code 126
+
+{-| __C declaration:__ @heif_suberror_Wrong_tile_image_chroma_format@
+
+    __defined at:__ @libheif\/heif_error.h 150:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Wrong_tile_image_chroma_format :: Heif_suberror_code
+pattern Heif_suberror_Wrong_tile_image_chroma_format = Heif_suberror_code 127
+
+{-| __C declaration:__ @heif_suberror_Invalid_fractional_number@
+
+    __defined at:__ @libheif\/heif_error.h 152:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_fractional_number :: Heif_suberror_code
+pattern Heif_suberror_Invalid_fractional_number = Heif_suberror_code 128
+
+{-| __C declaration:__ @heif_suberror_Invalid_image_size@
+
+    __defined at:__ @libheif\/heif_error.h 154:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_image_size :: Heif_suberror_code
+pattern Heif_suberror_Invalid_image_size = Heif_suberror_code 129
+
+{-| __C declaration:__ @heif_suberror_Invalid_pixi_box@
+
+    __defined at:__ @libheif\/heif_error.h 156:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_pixi_box :: Heif_suberror_code
+pattern Heif_suberror_Invalid_pixi_box = Heif_suberror_code 130
+
+{-| __C declaration:__ @heif_suberror_No_av1C_box@
+
+    __defined at:__ @libheif\/heif_error.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_av1C_box :: Heif_suberror_code
+pattern Heif_suberror_No_av1C_box = Heif_suberror_code 131
+
+{-| __C declaration:__ @heif_suberror_Wrong_tile_image_pixel_depth@
+
+    __defined at:__ @libheif\/heif_error.h 160:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Wrong_tile_image_pixel_depth :: Heif_suberror_code
+pattern Heif_suberror_Wrong_tile_image_pixel_depth = Heif_suberror_code 132
+
+{-| __C declaration:__ @heif_suberror_Unknown_NCLX_color_primaries@
+
+    __defined at:__ @libheif\/heif_error.h 162:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_NCLX_color_primaries :: Heif_suberror_code
+pattern Heif_suberror_Unknown_NCLX_color_primaries = Heif_suberror_code 133
+
+{-| __C declaration:__ @heif_suberror_Unknown_NCLX_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_error.h 164:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_NCLX_transfer_characteristics :: Heif_suberror_code
+pattern Heif_suberror_Unknown_NCLX_transfer_characteristics = Heif_suberror_code 134
+
+{-| __C declaration:__ @heif_suberror_Unknown_NCLX_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_error.h 166:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_NCLX_matrix_coefficients :: Heif_suberror_code
+pattern Heif_suberror_Unknown_NCLX_matrix_coefficients = Heif_suberror_code 135
+
+{-| __C declaration:__ @heif_suberror_Invalid_region_data@
+
+    __defined at:__ @libheif\/heif_error.h 169:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_region_data :: Heif_suberror_code
+pattern Heif_suberror_Invalid_region_data = Heif_suberror_code 136
+
+{-| __C declaration:__ @heif_suberror_No_ispe_property@
+
+    __defined at:__ @libheif\/heif_error.h 172:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ispe_property :: Heif_suberror_code
+pattern Heif_suberror_No_ispe_property = Heif_suberror_code 137
+
+{-| __C declaration:__ @heif_suberror_Camera_intrinsic_matrix_undefined@
+
+    __defined at:__ @libheif\/heif_error.h 174:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Camera_intrinsic_matrix_undefined :: Heif_suberror_code
+pattern Heif_suberror_Camera_intrinsic_matrix_undefined = Heif_suberror_code 138
+
+{-| __C declaration:__ @heif_suberror_Camera_extrinsic_matrix_undefined@
+
+    __defined at:__ @libheif\/heif_error.h 176:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Camera_extrinsic_matrix_undefined :: Heif_suberror_code
+pattern Heif_suberror_Camera_extrinsic_matrix_undefined = Heif_suberror_code 139
+
+{-| __C declaration:__ @heif_suberror_Invalid_J2K_codestream@
+
+    __defined at:__ @libheif\/heif_error.h 179:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_J2K_codestream :: Heif_suberror_code
+pattern Heif_suberror_Invalid_J2K_codestream = Heif_suberror_code 140
+
+{-| __C declaration:__ @heif_suberror_No_vvcC_box@
+
+    __defined at:__ @libheif\/heif_error.h 181:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_vvcC_box :: Heif_suberror_code
+pattern Heif_suberror_No_vvcC_box = Heif_suberror_code 141
+
+{-| __C declaration:__ @heif_suberror_No_icbr_box@
+
+    __defined at:__ @libheif\/heif_error.h 184:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_icbr_box :: Heif_suberror_code
+pattern Heif_suberror_No_icbr_box = Heif_suberror_code 142
+
+{-| __C declaration:__ @heif_suberror_No_avcC_box@
+
+    __defined at:__ @libheif\/heif_error.h 186:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_avcC_box :: Heif_suberror_code
+pattern Heif_suberror_No_avcC_box = Heif_suberror_code 143
+
+{-| __C declaration:__ @heif_suberror_Invalid_mini_box@
+
+    __defined at:__ @libheif\/heif_error.h 189:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_mini_box :: Heif_suberror_code
+pattern Heif_suberror_Invalid_mini_box = Heif_suberror_code 149
+
+{-| __C declaration:__ @heif_suberror_Decompression_invalid_data@
+
+    __defined at:__ @libheif\/heif_error.h 192:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Decompression_invalid_data :: Heif_suberror_code
+pattern Heif_suberror_Decompression_invalid_data = Heif_suberror_code 150
+
+{-| __C declaration:__ @heif_suberror_No_moov_box@
+
+    __defined at:__ @libheif\/heif_error.h 194:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_moov_box :: Heif_suberror_code
+pattern Heif_suberror_No_moov_box = Heif_suberror_code 151
+
+{-| __C declaration:__ @heif_suberror_NCLX_colr_VUI_mismatch@
+
+    __defined at:__ @libheif\/heif_error.h 199:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_NCLX_colr_VUI_mismatch :: Heif_suberror_code
+pattern Heif_suberror_NCLX_colr_VUI_mismatch = Heif_suberror_code 152
+
+{-| __C declaration:__ @heif_suberror_Security_limit_exceeded@
+
+    __defined at:__ @libheif\/heif_error.h 206:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Security_limit_exceeded :: Heif_suberror_code
+pattern Heif_suberror_Security_limit_exceeded = Heif_suberror_code 1000
+
+{-| __C declaration:__ @heif_suberror_Compression_initialisation_error@
+
+    __defined at:__ @libheif\/heif_error.h 210:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Compression_initialisation_error :: Heif_suberror_code
+pattern Heif_suberror_Compression_initialisation_error = Heif_suberror_code 1001
+
+{-| __C declaration:__ @heif_suberror_Nonexisting_item_referenced@
+
+    __defined at:__ @libheif\/heif_error.h 215:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Nonexisting_item_referenced :: Heif_suberror_code
+pattern Heif_suberror_Nonexisting_item_referenced = Heif_suberror_code 2000
+
+{-| __C declaration:__ @heif_suberror_Null_pointer_argument@
+
+    __defined at:__ @libheif\/heif_error.h 218:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Null_pointer_argument :: Heif_suberror_code
+pattern Heif_suberror_Null_pointer_argument = Heif_suberror_code 2001
+
+{-| __C declaration:__ @heif_suberror_Nonexisting_image_channel_referenced@
+
+    __defined at:__ @libheif\/heif_error.h 221:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Nonexisting_image_channel_referenced :: Heif_suberror_code
+pattern Heif_suberror_Nonexisting_image_channel_referenced = Heif_suberror_code 2002
+
+{-| __C declaration:__ @heif_suberror_Unsupported_plugin_version@
+
+    __defined at:__ @libheif\/heif_error.h 224:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_plugin_version :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_plugin_version = Heif_suberror_code 2003
+
+{-| __C declaration:__ @heif_suberror_Unsupported_writer_version@
+
+    __defined at:__ @libheif\/heif_error.h 227:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_writer_version :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_writer_version = Heif_suberror_code 2004
+
+{-| __C declaration:__ @heif_suberror_Unsupported_parameter@
+
+    __defined at:__ @libheif\/heif_error.h 230:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_parameter :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_parameter = Heif_suberror_code 2005
+
+{-| __C declaration:__ @heif_suberror_Invalid_parameter_value@
+
+    __defined at:__ @libheif\/heif_error.h 233:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_parameter_value :: Heif_suberror_code
+pattern Heif_suberror_Invalid_parameter_value = Heif_suberror_code 2006
+
+{-| __C declaration:__ @heif_suberror_Invalid_property@
+
+    __defined at:__ @libheif\/heif_error.h 236:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_property :: Heif_suberror_code
+pattern Heif_suberror_Invalid_property = Heif_suberror_code 2007
+
+{-| __C declaration:__ @heif_suberror_Item_reference_cycle@
+
+    __defined at:__ @libheif\/heif_error.h 239:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Item_reference_cycle :: Heif_suberror_code
+pattern Heif_suberror_Item_reference_cycle = Heif_suberror_code 2008
+
+{-| __C declaration:__ @heif_suberror_Unsupported_codec@
+
+    __defined at:__ @libheif\/heif_error.h 245:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_codec :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_codec = Heif_suberror_code 3000
+
+{-| __C declaration:__ @heif_suberror_Unsupported_image_type@
+
+    __defined at:__ @libheif\/heif_error.h 248:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_image_type :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_image_type = Heif_suberror_code 3001
+
+{-| __C declaration:__ @heif_suberror_Unsupported_data_version@
+
+    __defined at:__ @libheif\/heif_error.h 250:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_data_version :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_data_version = Heif_suberror_code 3002
+
+{-| __C declaration:__ @heif_suberror_Unsupported_color_conversion@
+
+    __defined at:__ @libheif\/heif_error.h 253:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_color_conversion :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_color_conversion = Heif_suberror_code 3003
+
+{-| __C declaration:__ @heif_suberror_Unsupported_item_construction_method@
+
+    __defined at:__ @libheif\/heif_error.h 255:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_item_construction_method :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_item_construction_method = Heif_suberror_code 3004
+
+{-| __C declaration:__ @heif_suberror_Unsupported_header_compression_method@
+
+    __defined at:__ @libheif\/heif_error.h 257:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_header_compression_method :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_header_compression_method = Heif_suberror_code 3005
+
+{-| __C declaration:__ @heif_suberror_Unsupported_generic_compression_method@
+
+    __defined at:__ @libheif\/heif_error.h 260:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_generic_compression_method :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_generic_compression_method = Heif_suberror_code 3006
+
+{-| __C declaration:__ @heif_suberror_Unsupported_essential_property@
+
+    __defined at:__ @libheif\/heif_error.h 262:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_essential_property :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_essential_property = Heif_suberror_code 3007
+
+{-| __C declaration:__ @heif_suberror_Unsupported_track_type@
+
+    __defined at:__ @libheif\/heif_error.h 264:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_track_type :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_track_type = Heif_suberror_code 3008
+
+{-| __C declaration:__ @heif_suberror_Unsupported_bit_depth@
+
+    __defined at:__ @libheif\/heif_error.h 268:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_bit_depth :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_bit_depth = Heif_suberror_code 4000
+
+{-| __C declaration:__ @heif_suberror_Cannot_write_output_data@
+
+    __defined at:__ @libheif\/heif_error.h 273:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Cannot_write_output_data :: Heif_suberror_code
+pattern Heif_suberror_Cannot_write_output_data = Heif_suberror_code 5000
+
+{-| __C declaration:__ @heif_suberror_Encoder_initialization@
+
+    __defined at:__ @libheif\/heif_error.h 275:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Encoder_initialization :: Heif_suberror_code
+pattern Heif_suberror_Encoder_initialization = Heif_suberror_code 5001
+
+{-| __C declaration:__ @heif_suberror_Encoder_encoding@
+
+    __defined at:__ @libheif\/heif_error.h 276:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Encoder_encoding :: Heif_suberror_code
+pattern Heif_suberror_Encoder_encoding = Heif_suberror_code 5002
+
+{-| __C declaration:__ @heif_suberror_Encoder_cleanup@
+
+    __defined at:__ @libheif\/heif_error.h 277:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Encoder_cleanup :: Heif_suberror_code
+pattern Heif_suberror_Encoder_cleanup = Heif_suberror_code 5003
+
+{-| __C declaration:__ @heif_suberror_Too_many_regions@
+
+    __defined at:__ @libheif\/heif_error.h 279:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Too_many_regions :: Heif_suberror_code
+pattern Heif_suberror_Too_many_regions = Heif_suberror_code 5004
+
+{-| __C declaration:__ @heif_suberror_Plugin_loading_error@
+
+    __defined at:__ @libheif\/heif_error.h 284:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Plugin_loading_error :: Heif_suberror_code
+pattern Heif_suberror_Plugin_loading_error = Heif_suberror_code 6000
+
+{-| __C declaration:__ @heif_suberror_Plugin_is_not_loaded@
+
+    __defined at:__ @libheif\/heif_error.h 285:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Plugin_is_not_loaded :: Heif_suberror_code
+pattern Heif_suberror_Plugin_is_not_loaded = Heif_suberror_code 6001
+
+{-| __C declaration:__ @heif_suberror_Cannot_read_plugin_directory@
+
+    __defined at:__ @libheif\/heif_error.h 286:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Cannot_read_plugin_directory :: Heif_suberror_code
+pattern Heif_suberror_Cannot_read_plugin_directory = Heif_suberror_code 6002
+
+{-| __C declaration:__ @heif_suberror_No_matching_decoder_installed@
+
+    __defined at:__ @libheif\/heif_error.h 287:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_matching_decoder_installed :: Heif_suberror_code
+pattern Heif_suberror_No_matching_decoder_installed = Heif_suberror_code 6003
+
+{-# COMPLETE
+      Heif_suberror_Unspecified
+    , Heif_suberror_End_of_data
+    , Heif_suberror_Invalid_box_size
+    , Heif_suberror_No_ftyp_box
+    , Heif_suberror_No_idat_box
+    , Heif_suberror_No_meta_box
+    , Heif_suberror_No_hdlr_box
+    , Heif_suberror_No_hvcC_box
+    , Heif_suberror_No_pitm_box
+    , Heif_suberror_No_ipco_box
+    , Heif_suberror_No_ipma_box
+    , Heif_suberror_No_iloc_box
+    , Heif_suberror_No_iinf_box
+    , Heif_suberror_No_iprp_box
+    , Heif_suberror_No_iref_box
+    , Heif_suberror_No_pict_handler
+    , Heif_suberror_Ipma_box_references_nonexisting_property
+    , Heif_suberror_No_properties_assigned_to_item
+    , Heif_suberror_No_item_data
+    , Heif_suberror_Invalid_grid_data
+    , Heif_suberror_Missing_grid_images
+    , Heif_suberror_Invalid_clean_aperture
+    , Heif_suberror_Invalid_overlay_data
+    , Heif_suberror_Overlay_image_outside_of_canvas
+    , Heif_suberror_Auxiliary_image_type_unspecified
+    , Heif_suberror_No_or_invalid_primary_item
+    , Heif_suberror_No_infe_box
+    , Heif_suberror_Unknown_color_profile_type
+    , Heif_suberror_Wrong_tile_image_chroma_format
+    , Heif_suberror_Invalid_fractional_number
+    , Heif_suberror_Invalid_image_size
+    , Heif_suberror_Invalid_pixi_box
+    , Heif_suberror_No_av1C_box
+    , Heif_suberror_Wrong_tile_image_pixel_depth
+    , Heif_suberror_Unknown_NCLX_color_primaries
+    , Heif_suberror_Unknown_NCLX_transfer_characteristics
+    , Heif_suberror_Unknown_NCLX_matrix_coefficients
+    , Heif_suberror_Invalid_region_data
+    , Heif_suberror_No_ispe_property
+    , Heif_suberror_Camera_intrinsic_matrix_undefined
+    , Heif_suberror_Camera_extrinsic_matrix_undefined
+    , Heif_suberror_Invalid_J2K_codestream
+    , Heif_suberror_No_vvcC_box
+    , Heif_suberror_No_icbr_box
+    , Heif_suberror_No_avcC_box
+    , Heif_suberror_Invalid_mini_box
+    , Heif_suberror_Decompression_invalid_data
+    , Heif_suberror_No_moov_box
+    , Heif_suberror_NCLX_colr_VUI_mismatch
+    , Heif_suberror_Security_limit_exceeded
+    , Heif_suberror_Compression_initialisation_error
+    , Heif_suberror_Nonexisting_item_referenced
+    , Heif_suberror_Null_pointer_argument
+    , Heif_suberror_Nonexisting_image_channel_referenced
+    , Heif_suberror_Unsupported_plugin_version
+    , Heif_suberror_Unsupported_writer_version
+    , Heif_suberror_Unsupported_parameter
+    , Heif_suberror_Invalid_parameter_value
+    , Heif_suberror_Invalid_property
+    , Heif_suberror_Item_reference_cycle
+    , Heif_suberror_Unsupported_codec
+    , Heif_suberror_Unsupported_image_type
+    , Heif_suberror_Unsupported_data_version
+    , Heif_suberror_Unsupported_color_conversion
+    , Heif_suberror_Unsupported_item_construction_method
+    , Heif_suberror_Unsupported_header_compression_method
+    , Heif_suberror_Unsupported_generic_compression_method
+    , Heif_suberror_Unsupported_essential_property
+    , Heif_suberror_Unsupported_track_type
+    , Heif_suberror_Unsupported_bit_depth
+    , Heif_suberror_Cannot_write_output_data
+    , Heif_suberror_Encoder_initialization
+    , Heif_suberror_Encoder_encoding
+    , Heif_suberror_Encoder_cleanup
+    , Heif_suberror_Too_many_regions
+    , Heif_suberror_Plugin_loading_error
+    , Heif_suberror_Plugin_is_not_loaded
+    , Heif_suberror_Cannot_read_plugin_directory
+    , Heif_suberror_No_matching_decoder_installed
+  #-}
+
+{-| __C declaration:__ @struct heif_error@
+
+    __defined at:__ @libheif\/heif_error.h 291:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_error = Heif_error
+  { heif_error_code :: Heif_error_code
+    {- ^ __C declaration:__ @code@
+
+         __defined at:__ @libheif\/heif_error.h 294:19@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_error_subcode :: Heif_suberror_code
+    {- ^ __C declaration:__ @subcode@
+
+         __defined at:__ @libheif\/heif_error.h 297:22@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_error_message :: PtrConst.PtrConst BG.CChar
+    {- ^ __C declaration:__ @message@
+
+         __defined at:__ @libheif\/heif_error.h 300:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_error where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_error where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_error
+      <*> HasCField.readRaw (BG.Proxy @"heif_error_code") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_error_subcode") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_error_message") ptr0
+
+instance Marshal.WriteRaw Heif_error where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_error heif_error_code2 heif_error_subcode3 heif_error_message4 ->
+               HasCField.writeRaw (BG.Proxy @"heif_error_code") ptr0 heif_error_code2
+            >> HasCField.writeRaw (BG.Proxy @"heif_error_subcode") ptr0 heif_error_subcode3
+            >> HasCField.writeRaw (BG.Proxy @"heif_error_message") ptr0 heif_error_message4
+
+deriving via Marshal.EquivStorable Heif_error instance BG.Storable Heif_error
+
+deriving via Struct.IsStructViaReadRaw Heif_error instance Struct.IsStruct Heif_error
+
+{-| __C declaration:__ @code@
+
+    __defined at:__ @libheif\/heif_error.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_error_code
+         ) => BG.CompatHasField.HasField "heif_error_code" Heif_error ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_error { heif_error_code = y1
+                     , heif_error_subcode = BG.getField @"heif_error_subcode" x0
+                     , heif_error_message = BG.getField @"heif_error_message" x0
+                     }
+      , BG.getField @"heif_error_code" x0
+      )
+
+instance ( ty ~ Heif_error_code
+         ) => BG.HasField "heif_error_code" (BG.Ptr Heif_error) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_error_code")
+
+instance HasCField.HasCField Heif_error "heif_error_code" where
+
+  type CFieldType Heif_error "heif_error_code" =
+    Heif_error_code
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @subcode@
+
+    __defined at:__ @libheif\/heif_error.h 297:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_suberror_code
+         ) => BG.CompatHasField.HasField "heif_error_subcode" Heif_error ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_error { heif_error_subcode = y1
+                     , heif_error_code = BG.getField @"heif_error_code" x0
+                     , heif_error_message = BG.getField @"heif_error_message" x0
+                     }
+      , BG.getField @"heif_error_subcode" x0
+      )
+
+instance ( ty ~ Heif_suberror_code
+         ) => BG.HasField "heif_error_subcode" (BG.Ptr Heif_error) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_error_subcode")
+
+instance HasCField.HasCField Heif_error "heif_error_subcode" where
+
+  type CFieldType Heif_error "heif_error_subcode" =
+    Heif_suberror_code
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @message@
+
+    __defined at:__ @libheif\/heif_error.h 300:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.CompatHasField.HasField "heif_error_message" Heif_error ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_error { heif_error_message = y1
+                     , heif_error_code = BG.getField @"heif_error_code" x0
+                     , heif_error_subcode = BG.getField @"heif_error_subcode" x0
+                     }
+      , BG.getField @"heif_error_message" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.HasField "heif_error_message" (BG.Ptr Heif_error) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_error_message")
+
+instance HasCField.HasCField Heif_error "heif_error_message" where
+
+  type CFieldType Heif_error "heif_error_message" =
+    PtrConst.PtrConst BG.CChar
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @macro LIBHEIF_MAKE_VERSION@
+
+    __defined at:__ @libheif\/heif_library.h 86:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_MAKE_VERSION :: forall a0 b1 c2. C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1) => C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2) => C.Expr.HostPlatform.Shift c2 BG.CInt => C.Expr.HostPlatform.Shift b1 BG.CInt => C.Expr.HostPlatform.Shift a0 BG.CInt => a0 -> b1 -> c2 -> C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2)
+lIBHEIF_MAKE_VERSION =
+  \h0 ->
+    \m1 ->
+      \l2 ->
+        (C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform.<<) h0 (24 :: BG.CInt)) ((C.Expr.HostPlatform.<<) m1 (16 :: BG.CInt))) ((C.Expr.HostPlatform.<<) l2 (8 :: BG.CInt))
+
+{-| __C declaration:__ @macro LIBHEIF_HAVE_VERSION@
+
+    __defined at:__ @libheif\/heif_library.h 87:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_HAVE_VERSION :: forall a0 b1 c2. C.Expr.HostPlatform.RelOrd BG.CInt (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2)) => C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2) => C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1) => C.Expr.HostPlatform.Shift a0 BG.CInt => C.Expr.HostPlatform.Shift b1 BG.CInt => C.Expr.HostPlatform.Shift c2 BG.CInt => a0 -> b1 -> c2 -> BG.CInt
+lIBHEIF_HAVE_VERSION =
+  \h0 ->
+    \m1 ->
+      \l2 ->
+        (C.Expr.HostPlatform.>=) lIBHEIF_NUMERIC_VERSION (lIBHEIF_MAKE_VERSION h0 m1 l2)
+
+{-| __C declaration:__ @struct heif_context@
+
+    __defined at:__ @libheif\/heif_library.h 89:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_context
+
+{-| __C declaration:__ @struct heif_image_handle@
+
+    __defined at:__ @libheif\/heif_library.h 90:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_image_handle
+
+{-| __C declaration:__ @heif_item_id@
+
+    __defined at:__ @libheif\/heif_library.h 92:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_item_id = Heif_item_id
+  { unwrapHeif_item_id :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_item_id" Heif_item_id ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_item_id {unwrapHeif_item_id = y1}
+      , BG.getField @"unwrapHeif_item_id" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_item_id" (BG.Ptr Heif_item_id) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_item_id")
+
+instance HasCField.HasCField Heif_item_id "unwrapHeif_item_id" where
+
+  type CFieldType Heif_item_id "unwrapHeif_item_id" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_property_id@
+
+    __defined at:__ @libheif\/heif_library.h 93:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_property_id = Heif_property_id
+  { unwrapHeif_property_id :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_property_id" Heif_property_id ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_property_id {unwrapHeif_property_id = y1}
+      , BG.getField @"unwrapHeif_property_id" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_property_id" (BG.Ptr Heif_property_id) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_property_id")
+
+instance HasCField.HasCField Heif_property_id "unwrapHeif_property_id" where
+
+  type CFieldType Heif_property_id "unwrapHeif_property_id" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @struct heif_init_params@
+
+    __defined at:__ @libheif\/heif_library.h 105:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_init_params = Heif_init_params
+  { heif_init_params_version :: BG.CInt
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_library.h 107:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_init_params where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_init_params where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_init_params
+      <*> HasCField.readRaw (BG.Proxy @"heif_init_params_version") ptr0
+
+instance Marshal.WriteRaw Heif_init_params where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_init_params heif_init_params_version2 ->
+            HasCField.writeRaw (BG.Proxy @"heif_init_params_version") ptr0 heif_init_params_version2
+
+deriving via Marshal.EquivStorable Heif_init_params instance BG.Storable Heif_init_params
+
+deriving via Struct.IsStructViaReadRaw Heif_init_params instance Struct.IsStruct Heif_init_params
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_library.h 107:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_init_params_version" Heif_init_params ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_init_params {heif_init_params_version = y1}
+      , BG.getField @"heif_init_params_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_init_params_version" (BG.Ptr Heif_init_params) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_init_params_version")
+
+instance HasCField.HasCField Heif_init_params "heif_init_params_version" where
+
+  type CFieldType Heif_init_params "heif_init_params_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @enum heif_plugin_type@
+
+    __defined at:__ @libheif\/heif_library.h 155:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_plugin_type = Heif_plugin_type
+  { unwrapHeif_plugin_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_plugin_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_plugin_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_plugin_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_plugin_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_plugin_type unwrapHeif_plugin_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_plugin_type2
+
+deriving via Marshal.EquivStorable Heif_plugin_type instance BG.Storable Heif_plugin_type
+
+deriving via BG.CUInt instance BG.Prim Heif_plugin_type
+
+instance CEnum.CEnum Heif_plugin_type where
+
+  type CEnumZ Heif_plugin_type = BG.CUInt
+
+  toCEnum = Heif_plugin_type
+
+  fromCEnum = BG.getField @"unwrapHeif_plugin_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_plugin_type_encoder")
+                                   , (1, BG.singleton "Heif_plugin_type_decoder")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_plugin_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_plugin_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_plugin_type where
+
+  minDeclaredValue = Heif_plugin_type_encoder
+
+  maxDeclaredValue = Heif_plugin_type_decoder
+
+instance Show Heif_plugin_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_plugin_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_plugin_type" Heif_plugin_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_type {unwrapHeif_plugin_type = y1}
+      , BG.getField @"unwrapHeif_plugin_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_plugin_type" (BG.Ptr Heif_plugin_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_plugin_type")
+
+instance HasCField.HasCField Heif_plugin_type "unwrapHeif_plugin_type" where
+
+  type CFieldType Heif_plugin_type "unwrapHeif_plugin_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_plugin_type_encoder@
+
+    __defined at:__ @libheif\/heif_library.h 157:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_plugin_type_encoder :: Heif_plugin_type
+pattern Heif_plugin_type_encoder = Heif_plugin_type 0
+
+{-| __C declaration:__ @heif_plugin_type_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_plugin_type_decoder :: Heif_plugin_type
+pattern Heif_plugin_type_decoder = Heif_plugin_type 1
+
+{-| __C declaration:__ @struct heif_plugin_info@
+
+    __defined at:__ @libheif\/heif_library.h 161:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_plugin_info = Heif_plugin_info
+  { heif_plugin_info_version :: BG.CInt
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_library.h 163:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_plugin_info_type :: Heif_plugin_type
+    {- ^ __C declaration:__ @type@
+
+         __defined at:__ @libheif\/heif_library.h 164:20@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_plugin_info_plugin :: PtrConst.PtrConst BG.Void
+    {- ^ __C declaration:__ @plugin@
+
+         __defined at:__ @libheif\/heif_library.h 165:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_plugin_info_internal_handle :: BG.Ptr BG.Void
+    {- ^ __C declaration:__ @internal_handle@
+
+         __defined at:__ @libheif\/heif_library.h 166:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_plugin_info where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_plugin_info where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_plugin_info
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_type") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_plugin") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_internal_handle") ptr0
+
+instance Marshal.WriteRaw Heif_plugin_info where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_plugin_info
+            heif_plugin_info_version2
+            heif_plugin_info_type3
+            heif_plugin_info_plugin4
+            heif_plugin_info_internal_handle5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_plugin_info_version") ptr0 heif_plugin_info_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_plugin_info_type") ptr0 heif_plugin_info_type3
+              >> HasCField.writeRaw (BG.Proxy @"heif_plugin_info_plugin") ptr0 heif_plugin_info_plugin4
+              >> HasCField.writeRaw (BG.Proxy @"heif_plugin_info_internal_handle") ptr0 heif_plugin_info_internal_handle5
+
+deriving via Marshal.EquivStorable Heif_plugin_info instance BG.Storable Heif_plugin_info
+
+deriving via Struct.IsStructViaReadRaw Heif_plugin_info instance Struct.IsStruct Heif_plugin_info
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_library.h 163:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_plugin_info_version" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_version = y1
+                           , heif_plugin_info_type = BG.getField @"heif_plugin_info_type" x0
+                           , heif_plugin_info_plugin = BG.getField @"heif_plugin_info_plugin" x0
+                           , heif_plugin_info_internal_handle = BG.getField @"heif_plugin_info_internal_handle" x0
+                           }
+      , BG.getField @"heif_plugin_info_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_plugin_info_version" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_version")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_version" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @type@
+
+    __defined at:__ @libheif\/heif_library.h 164:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_plugin_type
+         ) => BG.CompatHasField.HasField "heif_plugin_info_type" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_type = y1
+                           , heif_plugin_info_version = BG.getField @"heif_plugin_info_version" x0
+                           , heif_plugin_info_plugin = BG.getField @"heif_plugin_info_plugin" x0
+                           , heif_plugin_info_internal_handle = BG.getField @"heif_plugin_info_internal_handle" x0
+                           }
+      , BG.getField @"heif_plugin_info_type" x0
+      )
+
+instance ( ty ~ Heif_plugin_type
+         ) => BG.HasField "heif_plugin_info_type" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_type")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_type" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_type" =
+    Heif_plugin_type
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @plugin@
+
+    __defined at:__ @libheif\/heif_library.h 165:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.Void
+         ) => BG.CompatHasField.HasField "heif_plugin_info_plugin" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_plugin = y1
+                           , heif_plugin_info_version = BG.getField @"heif_plugin_info_version" x0
+                           , heif_plugin_info_type = BG.getField @"heif_plugin_info_type" x0
+                           , heif_plugin_info_internal_handle = BG.getField @"heif_plugin_info_internal_handle" x0
+                           }
+      , BG.getField @"heif_plugin_info_plugin" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.Void
+         ) => BG.HasField "heif_plugin_info_plugin" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_plugin")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_plugin" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_plugin" =
+    PtrConst.PtrConst BG.Void
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @internal_handle@
+
+    __defined at:__ @libheif\/heif_library.h 166:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.CompatHasField.HasField "heif_plugin_info_internal_handle" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_internal_handle = y1
+                           , heif_plugin_info_version = BG.getField @"heif_plugin_info_version" x0
+                           , heif_plugin_info_type = BG.getField @"heif_plugin_info_type" x0
+                           , heif_plugin_info_plugin = BG.getField @"heif_plugin_info_plugin" x0
+                           }
+      , BG.getField @"heif_plugin_info_internal_handle" x0
+      )
+
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.HasField "heif_plugin_info_internal_handle" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_internal_handle")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_internal_handle" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_internal_handle" =
+    BG.Ptr BG.Void
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @struct heif_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 193:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoder_plugin
+
+{-| __C declaration:__ @struct heif_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 194:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder_plugin
+
+{-| __C declaration:__ @enum heif_chroma@
+
+    __defined at:__ @libheif\/heif_image.h 53:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_chroma = Heif_chroma
+  { unwrapHeif_chroma :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_chroma where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_chroma where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_chroma
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_chroma where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_chroma unwrapHeif_chroma2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_chroma2
+
+deriving via Marshal.EquivStorable Heif_chroma instance BG.Storable Heif_chroma
+
+deriving via BG.CUInt instance BG.Prim Heif_chroma
+
+instance CEnum.CEnum Heif_chroma where
+
+  type CEnumZ Heif_chroma = BG.CUInt
+
+  toCEnum = Heif_chroma
+
+  fromCEnum = BG.getField @"unwrapHeif_chroma"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_chroma_planar")
+                                   , (1, BG.singleton "Heif_chroma_420")
+                                   , (2, BG.singleton "Heif_chroma_422")
+                                   , (3, BG.singleton "Heif_chroma_444")
+                                   , (10, BG.singleton "Heif_chroma_interleaved_RGB")
+                                   , (11, BG.singleton "Heif_chroma_interleaved_RGBA")
+                                   , (12, BG.singleton "Heif_chroma_interleaved_RRGGBB_BE")
+                                   , (13, BG.singleton "Heif_chroma_interleaved_RRGGBBAA_BE")
+                                   , (14, BG.singleton "Heif_chroma_interleaved_RRGGBB_LE")
+                                   , (15, BG.singleton "Heif_chroma_interleaved_RRGGBBAA_LE")
+                                   , (99, BG.singleton "Heif_chroma_undefined")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_chroma"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_chroma"
+
+instance Show Heif_chroma where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_chroma where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_chroma" Heif_chroma ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_chroma {unwrapHeif_chroma = y1}
+      , BG.getField @"unwrapHeif_chroma" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_chroma" (BG.Ptr Heif_chroma) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_chroma")
+
+instance HasCField.HasCField Heif_chroma "unwrapHeif_chroma" where
+
+  type CFieldType Heif_chroma "unwrapHeif_chroma" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_chroma_undefined@
+
+    __defined at:__ @libheif\/heif_image.h 55:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_undefined :: Heif_chroma
+pattern Heif_chroma_undefined = Heif_chroma 99
+
+{-| __C declaration:__ @heif_chroma_planar@
+
+    __defined at:__ @libheif\/heif_image.h 56:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_planar :: Heif_chroma
+pattern Heif_chroma_planar = Heif_chroma 0
+
+{-| __C declaration:__ @heif_chroma_420@
+
+    __defined at:__ @libheif\/heif_image.h 57:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_420 :: Heif_chroma
+pattern Heif_chroma_420 = Heif_chroma 1
+
+{-| __C declaration:__ @heif_chroma_422@
+
+    __defined at:__ @libheif\/heif_image.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_422 :: Heif_chroma
+pattern Heif_chroma_422 = Heif_chroma 2
+
+{-| __C declaration:__ @heif_chroma_444@
+
+    __defined at:__ @libheif\/heif_image.h 59:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_444 :: Heif_chroma
+pattern Heif_chroma_444 = Heif_chroma 3
+
+{-| __C declaration:__ @heif_chroma_interleaved_RGB@
+
+    __defined at:__ @libheif\/heif_image.h 60:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RGB :: Heif_chroma
+pattern Heif_chroma_interleaved_RGB = Heif_chroma 10
+
+{-| __C declaration:__ @heif_chroma_interleaved_RGBA@
+
+    __defined at:__ @libheif\/heif_image.h 61:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RGBA :: Heif_chroma
+pattern Heif_chroma_interleaved_RGBA = Heif_chroma 11
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBB_BE@
+
+    __defined at:__ @libheif\/heif_image.h 62:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBB_BE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBB_BE = Heif_chroma 12
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBBAA_BE@
+
+    __defined at:__ @libheif\/heif_image.h 63:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBBAA_BE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBBAA_BE = Heif_chroma 13
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBB_LE@
+
+    __defined at:__ @libheif\/heif_image.h 64:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBB_LE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBB_LE = Heif_chroma 14
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBBAA_LE@
+
+    __defined at:__ @libheif\/heif_image.h 65:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBBAA_LE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBBAA_LE = Heif_chroma 15
+
+{-| __C declaration:__ @enum heif_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 78:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_colorspace = Heif_colorspace
+  { unwrapHeif_colorspace :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_colorspace where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_colorspace where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_colorspace
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_colorspace where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_colorspace unwrapHeif_colorspace2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_colorspace2
+
+deriving via Marshal.EquivStorable Heif_colorspace instance BG.Storable Heif_colorspace
+
+deriving via BG.CUInt instance BG.Prim Heif_colorspace
+
+instance CEnum.CEnum Heif_colorspace where
+
+  type CEnumZ Heif_colorspace = BG.CUInt
+
+  toCEnum = Heif_colorspace
+
+  fromCEnum = BG.getField @"unwrapHeif_colorspace"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_colorspace_YCbCr")
+                                   , (1, BG.singleton "Heif_colorspace_RGB")
+                                   , (2, BG.singleton "Heif_colorspace_monochrome")
+                                   , (3, BG.singleton "Heif_colorspace_custom")
+                                   , (4, BG.singleton "Heif_colorspace_filter_array")
+                                   , (99, BG.singleton "Heif_colorspace_undefined")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_colorspace"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_colorspace"
+
+instance Show Heif_colorspace where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_colorspace where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_colorspace" Heif_colorspace ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_colorspace {unwrapHeif_colorspace = y1}
+      , BG.getField @"unwrapHeif_colorspace" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_colorspace" (BG.Ptr Heif_colorspace) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_colorspace")
+
+instance HasCField.HasCField Heif_colorspace "unwrapHeif_colorspace" where
+
+  type CFieldType Heif_colorspace "unwrapHeif_colorspace" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_colorspace_undefined@
+
+    __defined at:__ @libheif\/heif_image.h 80:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_undefined :: Heif_colorspace
+pattern Heif_colorspace_undefined = Heif_colorspace 99
+
+{-| __C declaration:__ @heif_colorspace_YCbCr@
+
+    __defined at:__ @libheif\/heif_image.h 86:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_YCbCr :: Heif_colorspace
+pattern Heif_colorspace_YCbCr = Heif_colorspace 0
+
+{-| __C declaration:__ @heif_colorspace_RGB@
+
+    __defined at:__ @libheif\/heif_image.h 98:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_RGB :: Heif_colorspace
+pattern Heif_colorspace_RGB = Heif_colorspace 1
+
+{-| __C declaration:__ @heif_colorspace_monochrome@
+
+    __defined at:__ @libheif\/heif_image.h 101:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_monochrome :: Heif_colorspace
+pattern Heif_colorspace_monochrome = Heif_colorspace 2
+
+{-| __C declaration:__ @heif_colorspace_custom@
+
+    __defined at:__ @libheif\/heif_image.h 106:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_custom :: Heif_colorspace
+pattern Heif_colorspace_custom = Heif_colorspace 3
+
+{-| __C declaration:__ @heif_colorspace_filter_array@
+
+    __defined at:__ @libheif\/heif_image.h 110:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_filter_array :: Heif_colorspace
+pattern Heif_colorspace_filter_array = Heif_colorspace 4
+
+{-| __C declaration:__ @enum heif_channel@
+
+    __defined at:__ @libheif\/heif_image.h 115:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_channel = Heif_channel
+  { unwrapHeif_channel :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_channel where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_channel where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_channel
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_channel where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_channel unwrapHeif_channel2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_channel2
+
+deriving via Marshal.EquivStorable Heif_channel instance BG.Storable Heif_channel
+
+deriving via BG.CUInt instance BG.Prim Heif_channel
+
+instance CEnum.CEnum Heif_channel where
+
+  type CEnumZ Heif_channel = BG.CUInt
+
+  toCEnum = Heif_channel
+
+  fromCEnum = BG.getField @"unwrapHeif_channel"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_channel_Y")
+                                   , (1, BG.singleton "Heif_channel_Cb")
+                                   , (2, BG.singleton "Heif_channel_Cr")
+                                   , (3, BG.singleton "Heif_channel_R")
+                                   , (4, BG.singleton "Heif_channel_G")
+                                   , (5, BG.singleton "Heif_channel_B")
+                                   , (6, BG.singleton "Heif_channel_Alpha")
+                                   , (10, BG.singleton "Heif_channel_interleaved")
+                                   , (11, BG.singleton "Heif_channel_filter_array")
+                                   , (12, BG.singleton "Heif_channel_depth")
+                                   , (13, BG.singleton "Heif_channel_disparity")
+                                   , (65535, BG.singleton "Heif_channel_unknown")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_channel"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_channel"
+
+instance Show Heif_channel where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_channel where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_channel" Heif_channel ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_channel {unwrapHeif_channel = y1}
+      , BG.getField @"unwrapHeif_channel" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_channel" (BG.Ptr Heif_channel) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_channel")
+
+instance HasCField.HasCField Heif_channel "unwrapHeif_channel" where
+
+  type CFieldType Heif_channel "unwrapHeif_channel" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_channel_Y@
+
+    __defined at:__ @libheif\/heif_image.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Y :: Heif_channel
+pattern Heif_channel_Y = Heif_channel 0
+
+{-| __C declaration:__ @heif_channel_Cb@
+
+    __defined at:__ @libheif\/heif_image.h 118:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Cb :: Heif_channel
+pattern Heif_channel_Cb = Heif_channel 1
+
+{-| __C declaration:__ @heif_channel_Cr@
+
+    __defined at:__ @libheif\/heif_image.h 119:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Cr :: Heif_channel
+pattern Heif_channel_Cr = Heif_channel 2
+
+{-| __C declaration:__ @heif_channel_R@
+
+    __defined at:__ @libheif\/heif_image.h 120:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_R :: Heif_channel
+pattern Heif_channel_R = Heif_channel 3
+
+{-| __C declaration:__ @heif_channel_G@
+
+    __defined at:__ @libheif\/heif_image.h 121:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_G :: Heif_channel
+pattern Heif_channel_G = Heif_channel 4
+
+{-| __C declaration:__ @heif_channel_B@
+
+    __defined at:__ @libheif\/heif_image.h 122:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_B :: Heif_channel
+pattern Heif_channel_B = Heif_channel 5
+
+{-| __C declaration:__ @heif_channel_Alpha@
+
+    __defined at:__ @libheif\/heif_image.h 123:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Alpha :: Heif_channel
+pattern Heif_channel_Alpha = Heif_channel 6
+
+{-| __C declaration:__ @heif_channel_interleaved@
+
+    __defined at:__ @libheif\/heif_image.h 124:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_interleaved :: Heif_channel
+pattern Heif_channel_interleaved = Heif_channel 10
+
+{-| __C declaration:__ @heif_channel_filter_array@
+
+    __defined at:__ @libheif\/heif_image.h 125:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_filter_array :: Heif_channel
+pattern Heif_channel_filter_array = Heif_channel 11
+
+{-| __C declaration:__ @heif_channel_depth@
+
+    __defined at:__ @libheif\/heif_image.h 126:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_depth :: Heif_channel
+pattern Heif_channel_depth = Heif_channel 12
+
+{-| __C declaration:__ @heif_channel_disparity@
+
+    __defined at:__ @libheif\/heif_image.h 127:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_disparity :: Heif_channel
+pattern Heif_channel_disparity = Heif_channel 13
+
+{-| __C declaration:__ @heif_channel_unknown@
+
+    __defined at:__ @libheif\/heif_image.h 128:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_unknown :: Heif_channel
+pattern Heif_channel_unknown = Heif_channel 65535
+
+{-| __C declaration:__ @struct heif_image@
+
+    __defined at:__ @libheif\/heif_image.h 143:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_image
+
+{-| __C declaration:__ @struct heif_scaling_options@
+
+    __defined at:__ @libheif\/heif_image.h 283:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_scaling_options
+
+{-| __C declaration:__ @enum heif_chroma_downsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 34:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_chroma_downsampling_algorithm = Heif_chroma_downsampling_algorithm
+  { unwrapHeif_chroma_downsampling_algorithm :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_chroma_downsampling_algorithm where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_chroma_downsampling_algorithm where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_chroma_downsampling_algorithm
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_chroma_downsampling_algorithm where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_chroma_downsampling_algorithm unwrapHeif_chroma_downsampling_algorithm2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_chroma_downsampling_algorithm2
+
+deriving via Marshal.EquivStorable Heif_chroma_downsampling_algorithm instance BG.Storable Heif_chroma_downsampling_algorithm
+
+deriving via BG.CUInt instance BG.Prim Heif_chroma_downsampling_algorithm
+
+instance CEnum.CEnum Heif_chroma_downsampling_algorithm where
+
+  type CEnumZ Heif_chroma_downsampling_algorithm =
+    BG.CUInt
+
+  toCEnum = Heif_chroma_downsampling_algorithm
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_chroma_downsampling_algorithm"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_chroma_downsampling_nearest_neighbor")
+                                   , (2, BG.singleton "Heif_chroma_downsampling_average")
+                                   , (3, BG.singleton "Heif_chroma_downsampling_sharp_yuv")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_chroma_downsampling_algorithm"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_chroma_downsampling_algorithm"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_chroma_downsampling_algorithm where
+
+  minDeclaredValue =
+    Heif_chroma_downsampling_nearest_neighbor
+
+  maxDeclaredValue = Heif_chroma_downsampling_sharp_yuv
+
+instance Show Heif_chroma_downsampling_algorithm where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_chroma_downsampling_algorithm where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_chroma_downsampling_algorithm" Heif_chroma_downsampling_algorithm ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_chroma_downsampling_algorithm {unwrapHeif_chroma_downsampling_algorithm = y1}
+      , BG.getField @"unwrapHeif_chroma_downsampling_algorithm" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_chroma_downsampling_algorithm" (BG.Ptr Heif_chroma_downsampling_algorithm) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_chroma_downsampling_algorithm")
+
+instance HasCField.HasCField Heif_chroma_downsampling_algorithm "unwrapHeif_chroma_downsampling_algorithm" where
+
+  type CFieldType Heif_chroma_downsampling_algorithm "unwrapHeif_chroma_downsampling_algorithm" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_chroma_downsampling_nearest_neighbor@
+
+    __defined at:__ @libheif\/heif_color.h 36:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_downsampling_nearest_neighbor :: Heif_chroma_downsampling_algorithm
+pattern Heif_chroma_downsampling_nearest_neighbor = Heif_chroma_downsampling_algorithm 1
+
+{-| __C declaration:__ @heif_chroma_downsampling_average@
+
+    __defined at:__ @libheif\/heif_color.h 37:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_downsampling_average :: Heif_chroma_downsampling_algorithm
+pattern Heif_chroma_downsampling_average = Heif_chroma_downsampling_algorithm 2
+
+{-| __C declaration:__ @heif_chroma_downsampling_sharp_yuv@
+
+    __defined at:__ @libheif\/heif_color.h 41:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_downsampling_sharp_yuv :: Heif_chroma_downsampling_algorithm
+pattern Heif_chroma_downsampling_sharp_yuv = Heif_chroma_downsampling_algorithm 3
+
+{-| __C declaration:__ @enum heif_chroma_upsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 44:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_chroma_upsampling_algorithm = Heif_chroma_upsampling_algorithm
+  { unwrapHeif_chroma_upsampling_algorithm :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_chroma_upsampling_algorithm where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_chroma_upsampling_algorithm where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_chroma_upsampling_algorithm
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_chroma_upsampling_algorithm where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_chroma_upsampling_algorithm unwrapHeif_chroma_upsampling_algorithm2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_chroma_upsampling_algorithm2
+
+deriving via Marshal.EquivStorable Heif_chroma_upsampling_algorithm instance BG.Storable Heif_chroma_upsampling_algorithm
+
+deriving via BG.CUInt instance BG.Prim Heif_chroma_upsampling_algorithm
+
+instance CEnum.CEnum Heif_chroma_upsampling_algorithm where
+
+  type CEnumZ Heif_chroma_upsampling_algorithm =
+    BG.CUInt
+
+  toCEnum = Heif_chroma_upsampling_algorithm
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_chroma_upsampling_algorithm"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_chroma_upsampling_nearest_neighbor")
+                                   , (2, BG.singleton "Heif_chroma_upsampling_bilinear")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_chroma_upsampling_algorithm"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_chroma_upsampling_algorithm"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_chroma_upsampling_algorithm where
+
+  minDeclaredValue =
+    Heif_chroma_upsampling_nearest_neighbor
+
+  maxDeclaredValue = Heif_chroma_upsampling_bilinear
+
+instance Show Heif_chroma_upsampling_algorithm where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_chroma_upsampling_algorithm where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_chroma_upsampling_algorithm" Heif_chroma_upsampling_algorithm ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_chroma_upsampling_algorithm {unwrapHeif_chroma_upsampling_algorithm = y1}
+      , BG.getField @"unwrapHeif_chroma_upsampling_algorithm" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_chroma_upsampling_algorithm" (BG.Ptr Heif_chroma_upsampling_algorithm) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_chroma_upsampling_algorithm")
+
+instance HasCField.HasCField Heif_chroma_upsampling_algorithm "unwrapHeif_chroma_upsampling_algorithm" where
+
+  type CFieldType Heif_chroma_upsampling_algorithm "unwrapHeif_chroma_upsampling_algorithm" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_chroma_upsampling_nearest_neighbor@
+
+    __defined at:__ @libheif\/heif_color.h 46:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_upsampling_nearest_neighbor :: Heif_chroma_upsampling_algorithm
+pattern Heif_chroma_upsampling_nearest_neighbor = Heif_chroma_upsampling_algorithm 1
+
+{-| __C declaration:__ @heif_chroma_upsampling_bilinear@
+
+    __defined at:__ @libheif\/heif_color.h 47:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_upsampling_bilinear :: Heif_chroma_upsampling_algorithm
+pattern Heif_chroma_upsampling_bilinear = Heif_chroma_upsampling_algorithm 2
+
+{-| __C declaration:__ @struct heif_color_conversion_options@
+
+    __defined at:__ @libheif\/heif_color.h 51:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_color_conversion_options = Heif_color_conversion_options
+  { heif_color_conversion_options_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_color.h 54:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_preferred_chroma_downsampling_algorithm :: Heif_chroma_downsampling_algorithm
+    {- ^ __C declaration:__ @preferred_chroma_downsampling_algorithm@
+
+         __defined at:__ @libheif\/heif_color.h 58:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_preferred_chroma_upsampling_algorithm :: Heif_chroma_upsampling_algorithm
+    {- ^ __C declaration:__ @preferred_chroma_upsampling_algorithm@
+
+         __defined at:__ @libheif\/heif_color.h 59:36@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_only_use_preferred_chroma_algorithm :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @only_use_preferred_chroma_algorithm@
+
+         __defined at:__ @libheif\/heif_color.h 67:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_color_conversion_options where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_conversion_options where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_conversion_options
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_only_use_preferred_chroma_algorithm") ptr0
+
+instance Marshal.WriteRaw Heif_color_conversion_options where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_conversion_options
+            heif_color_conversion_options_version2
+            heif_color_conversion_options_preferred_chroma_downsampling_algorithm3
+            heif_color_conversion_options_preferred_chroma_upsampling_algorithm4
+            heif_color_conversion_options_only_use_preferred_chroma_algorithm5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_version") ptr0 heif_color_conversion_options_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm") ptr0 heif_color_conversion_options_preferred_chroma_downsampling_algorithm3
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm") ptr0 heif_color_conversion_options_preferred_chroma_upsampling_algorithm4
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_only_use_preferred_chroma_algorithm") ptr0 heif_color_conversion_options_only_use_preferred_chroma_algorithm5
+
+deriving via Marshal.EquivStorable Heif_color_conversion_options instance BG.Storable Heif_color_conversion_options
+
+deriving via Struct.IsStructViaReadRaw Heif_color_conversion_options instance Struct.IsStruct Heif_color_conversion_options
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_color.h 54:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_version" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_version = y1
+                                        , heif_color_conversion_options_preferred_chroma_downsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+                                        , heif_color_conversion_options_preferred_chroma_upsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+                                        , heif_color_conversion_options_only_use_preferred_chroma_algorithm = BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_conversion_options_version" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_version")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_version" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @preferred_chroma_downsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 58:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_chroma_downsampling_algorithm
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_preferred_chroma_downsampling_algorithm = y1
+                                        , heif_color_conversion_options_version = BG.getField @"heif_color_conversion_options_version" x0
+                                        , heif_color_conversion_options_preferred_chroma_upsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+                                        , heif_color_conversion_options_only_use_preferred_chroma_algorithm = BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+      )
+
+instance ( ty ~ Heif_chroma_downsampling_algorithm
+         ) => BG.HasField "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" =
+    Heif_chroma_downsampling_algorithm
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @preferred_chroma_upsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 59:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_chroma_upsampling_algorithm
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_preferred_chroma_upsampling_algorithm = y1
+                                        , heif_color_conversion_options_version = BG.getField @"heif_color_conversion_options_version" x0
+                                        , heif_color_conversion_options_preferred_chroma_downsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+                                        , heif_color_conversion_options_only_use_preferred_chroma_algorithm = BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+      )
+
+instance ( ty ~ Heif_chroma_upsampling_algorithm
+         ) => BG.HasField "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" =
+    Heif_chroma_upsampling_algorithm
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @only_use_preferred_chroma_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 67:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_only_use_preferred_chroma_algorithm" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_only_use_preferred_chroma_algorithm = y1
+                                        , heif_color_conversion_options_version = BG.getField @"heif_color_conversion_options_version" x0
+                                        , heif_color_conversion_options_preferred_chroma_downsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+                                        , heif_color_conversion_options_preferred_chroma_upsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_conversion_options_only_use_preferred_chroma_algorithm" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_only_use_preferred_chroma_algorithm")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_only_use_preferred_chroma_algorithm" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_only_use_preferred_chroma_algorithm" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @enum heif_alpha_composition_mode@
+
+    __defined at:__ @libheif\/heif_color.h 74:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_alpha_composition_mode = Heif_alpha_composition_mode
+  { unwrapHeif_alpha_composition_mode :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_alpha_composition_mode where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_alpha_composition_mode where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_alpha_composition_mode
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_alpha_composition_mode where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_alpha_composition_mode unwrapHeif_alpha_composition_mode2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_alpha_composition_mode2
+
+deriving via Marshal.EquivStorable Heif_alpha_composition_mode instance BG.Storable Heif_alpha_composition_mode
+
+deriving via BG.CUInt instance BG.Prim Heif_alpha_composition_mode
+
+instance CEnum.CEnum Heif_alpha_composition_mode where
+
+  type CEnumZ Heif_alpha_composition_mode = BG.CUInt
+
+  toCEnum = Heif_alpha_composition_mode
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_alpha_composition_mode"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_alpha_composition_mode_none")
+                                   , (1, BG.singleton "Heif_alpha_composition_mode_solid_color")
+                                   , (2, BG.singleton "Heif_alpha_composition_mode_checkerboard")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_alpha_composition_mode"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_alpha_composition_mode"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_alpha_composition_mode where
+
+  minDeclaredValue = Heif_alpha_composition_mode_none
+
+  maxDeclaredValue =
+    Heif_alpha_composition_mode_checkerboard
+
+instance Show Heif_alpha_composition_mode where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_alpha_composition_mode where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_alpha_composition_mode" Heif_alpha_composition_mode ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_alpha_composition_mode {unwrapHeif_alpha_composition_mode = y1}
+      , BG.getField @"unwrapHeif_alpha_composition_mode" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_alpha_composition_mode" (BG.Ptr Heif_alpha_composition_mode) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_alpha_composition_mode")
+
+instance HasCField.HasCField Heif_alpha_composition_mode "unwrapHeif_alpha_composition_mode" where
+
+  type CFieldType Heif_alpha_composition_mode "unwrapHeif_alpha_composition_mode" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_alpha_composition_mode_none@
+
+    __defined at:__ @libheif\/heif_color.h 76:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_alpha_composition_mode_none :: Heif_alpha_composition_mode
+pattern Heif_alpha_composition_mode_none = Heif_alpha_composition_mode 0
+
+{-| __C declaration:__ @heif_alpha_composition_mode_solid_color@
+
+    __defined at:__ @libheif\/heif_color.h 77:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_alpha_composition_mode_solid_color :: Heif_alpha_composition_mode
+pattern Heif_alpha_composition_mode_solid_color = Heif_alpha_composition_mode 1
+
+{-| __C declaration:__ @heif_alpha_composition_mode_checkerboard@
+
+    __defined at:__ @libheif\/heif_color.h 78:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_alpha_composition_mode_checkerboard :: Heif_alpha_composition_mode
+pattern Heif_alpha_composition_mode_checkerboard = Heif_alpha_composition_mode 2
+
+{-| __C declaration:__ @struct heif_color_conversion_options_ext@
+
+    __defined at:__ @libheif\/heif_color.h 82:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_color_conversion_options_ext = Heif_color_conversion_options_ext
+  { heif_color_conversion_options_ext_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_color.h 84:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_alpha_composition_mode :: Heif_alpha_composition_mode
+    {- ^ __C declaration:__ @alpha_composition_mode@
+
+         __defined at:__ @libheif\/heif_color.h 88:31@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_background_red :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @background_red@
+
+         __defined at:__ @libheif\/heif_color.h 91:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_background_green :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @background_green@
+
+         __defined at:__ @libheif\/heif_color.h 91:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_background_blue :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @background_blue@
+
+         __defined at:__ @libheif\/heif_color.h 91:46@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_secondary_background_red :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @secondary_background_red@
+
+         __defined at:__ @libheif\/heif_color.h 92:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_secondary_background_green :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @secondary_background_green@
+
+         __defined at:__ @libheif\/heif_color.h 92:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_secondary_background_blue :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @secondary_background_blue@
+
+         __defined at:__ @libheif\/heif_color.h 92:66@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_checkerboard_square_size :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @checkerboard_square_size@
+
+         __defined at:__ @libheif\/heif_color.h 93:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_color_conversion_options_ext where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_conversion_options_ext where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_conversion_options_ext
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_alpha_composition_mode") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_background_red") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_background_green") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_background_blue") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_red") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_green") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_blue") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_checkerboard_square_size") ptr0
+
+instance Marshal.WriteRaw Heif_color_conversion_options_ext where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_conversion_options_ext
+            heif_color_conversion_options_ext_version2
+            heif_color_conversion_options_ext_alpha_composition_mode3
+            heif_color_conversion_options_ext_background_red4
+            heif_color_conversion_options_ext_background_green5
+            heif_color_conversion_options_ext_background_blue6
+            heif_color_conversion_options_ext_secondary_background_red7
+            heif_color_conversion_options_ext_secondary_background_green8
+            heif_color_conversion_options_ext_secondary_background_blue9
+            heif_color_conversion_options_ext_checkerboard_square_size10 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_version") ptr0 heif_color_conversion_options_ext_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_alpha_composition_mode") ptr0 heif_color_conversion_options_ext_alpha_composition_mode3
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_background_red") ptr0 heif_color_conversion_options_ext_background_red4
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_background_green") ptr0 heif_color_conversion_options_ext_background_green5
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_background_blue") ptr0 heif_color_conversion_options_ext_background_blue6
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_red") ptr0 heif_color_conversion_options_ext_secondary_background_red7
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_green") ptr0 heif_color_conversion_options_ext_secondary_background_green8
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_blue") ptr0 heif_color_conversion_options_ext_secondary_background_blue9
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_checkerboard_square_size") ptr0 heif_color_conversion_options_ext_checkerboard_square_size10
+
+deriving via Marshal.EquivStorable Heif_color_conversion_options_ext instance BG.Storable Heif_color_conversion_options_ext
+
+deriving via Struct.IsStructViaReadRaw Heif_color_conversion_options_ext instance Struct.IsStruct Heif_color_conversion_options_ext
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_color.h 84:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_version" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_version = y1
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_conversion_options_ext_version" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_version")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_version" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @alpha_composition_mode@
+
+    __defined at:__ @libheif\/heif_color.h 88:31@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_alpha_composition_mode
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_alpha_composition_mode" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_alpha_composition_mode = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+      )
+
+instance ( ty ~ Heif_alpha_composition_mode
+         ) => BG.HasField "heif_color_conversion_options_ext_alpha_composition_mode" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_alpha_composition_mode")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_alpha_composition_mode" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_alpha_composition_mode" =
+    Heif_alpha_composition_mode
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @background_red@
+
+    __defined at:__ @libheif\/heif_color.h 91:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_background_red" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_background_red = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_background_red" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_background_red" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_background_red")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_red" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_red" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @background_green@
+
+    __defined at:__ @libheif\/heif_color.h 91:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_background_green" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_background_green = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_background_green" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_background_green" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_background_green")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_green" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_green" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 10
+
+{-| __C declaration:__ @background_blue@
+
+    __defined at:__ @libheif\/heif_color.h 91:46@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_background_blue" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_background_blue = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_background_blue" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_background_blue")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_blue" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_blue" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @secondary_background_red@
+
+    __defined at:__ @libheif\/heif_color.h 92:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_secondary_background_red" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_secondary_background_red = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_secondary_background_red" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_red")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_red" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_red" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 14
+
+{-| __C declaration:__ @secondary_background_green@
+
+    __defined at:__ @libheif\/heif_color.h 92:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_secondary_background_green" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_secondary_background_green = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_secondary_background_green" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_green")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_green" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_green" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @secondary_background_blue@
+
+    __defined at:__ @libheif\/heif_color.h 92:66@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_secondary_background_blue" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_secondary_background_blue = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_secondary_background_blue" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_blue")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_blue" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_blue" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 18
+
+{-| __C declaration:__ @checkerboard_square_size@
+
+    __defined at:__ @libheif\/heif_color.h 93:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_checkerboard_square_size" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_checkerboard_square_size = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_checkerboard_square_size" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_checkerboard_square_size")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_checkerboard_square_size" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_checkerboard_square_size" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @enum heif_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 114:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_color_profile_type = Heif_color_profile_type
+  { unwrapHeif_color_profile_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_color_profile_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_profile_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_profile_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_color_profile_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_profile_type unwrapHeif_color_profile_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_color_profile_type2
+
+deriving via Marshal.EquivStorable Heif_color_profile_type instance BG.Storable Heif_color_profile_type
+
+deriving via BG.CUInt instance BG.Prim Heif_color_profile_type
+
+instance CEnum.CEnum Heif_color_profile_type where
+
+  type CEnumZ Heif_color_profile_type = BG.CUInt
+
+  toCEnum = Heif_color_profile_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_color_profile_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_color_profile_type_not_present")
+                                   , (1852009592, BG.singleton "Heif_color_profile_type_nclx")
+                                   , (1886547814, BG.singleton "Heif_color_profile_type_prof")
+                                   , (1917403971, BG.singleton "Heif_color_profile_type_rICC")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_color_profile_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_color_profile_type"
+
+instance Show Heif_color_profile_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_color_profile_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_color_profile_type" Heif_color_profile_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_type {unwrapHeif_color_profile_type = y1}
+      , BG.getField @"unwrapHeif_color_profile_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_color_profile_type" (BG.Ptr Heif_color_profile_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_color_profile_type")
+
+instance HasCField.HasCField Heif_color_profile_type "unwrapHeif_color_profile_type" where
+
+  type CFieldType Heif_color_profile_type "unwrapHeif_color_profile_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_color_profile_type_not_present@
+
+    __defined at:__ @libheif\/heif_color.h 116:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_not_present :: Heif_color_profile_type
+pattern Heif_color_profile_type_not_present = Heif_color_profile_type 0
+
+{-| __C declaration:__ @heif_color_profile_type_nclx@
+
+    __defined at:__ @libheif\/heif_color.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_nclx :: Heif_color_profile_type
+pattern Heif_color_profile_type_nclx = Heif_color_profile_type 1852009592
+
+{-| __C declaration:__ @heif_color_profile_type_rICC@
+
+    __defined at:__ @libheif\/heif_color.h 118:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_rICC :: Heif_color_profile_type
+pattern Heif_color_profile_type_rICC = Heif_color_profile_type 1917403971
+
+{-| __C declaration:__ @heif_color_profile_type_prof@
+
+    __defined at:__ @libheif\/heif_color.h 119:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_prof :: Heif_color_profile_type
+pattern Heif_color_profile_type_prof = Heif_color_profile_type 1886547814
+
+{-| __C declaration:__ @enum heif_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 140:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_color_primaries = Heif_color_primaries
+  { unwrapHeif_color_primaries :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_color_primaries where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_primaries where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_primaries
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_color_primaries where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_primaries unwrapHeif_color_primaries2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_color_primaries2
+
+deriving via Marshal.EquivStorable Heif_color_primaries instance BG.Storable Heif_color_primaries
+
+deriving via BG.CUInt instance BG.Prim Heif_color_primaries
+
+instance CEnum.CEnum Heif_color_primaries where
+
+  type CEnumZ Heif_color_primaries = BG.CUInt
+
+  toCEnum = Heif_color_primaries
+
+  fromCEnum = BG.getField @"unwrapHeif_color_primaries"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_color_primaries_ITU_R_BT_709_5")
+                                   , (2, BG.singleton "Heif_color_primaries_unspecified")
+                                   , (4, BG.singleton "Heif_color_primaries_ITU_R_BT_470_6_System_M")
+                                   , (5, BG.singleton "Heif_color_primaries_ITU_R_BT_470_6_System_B_G")
+                                   , (6, BG.singleton "Heif_color_primaries_ITU_R_BT_601_6")
+                                   , (7, BG.singleton "Heif_color_primaries_SMPTE_240M")
+                                   , (8, BG.singleton "Heif_color_primaries_generic_film")
+                                   , (9, BG.singleton "Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0")
+                                   , (10, BG.singleton "Heif_color_primaries_SMPTE_ST_428_1")
+                                   , (11, BG.singleton "Heif_color_primaries_SMPTE_RP_431_2")
+                                   , (12, BG.singleton "Heif_color_primaries_SMPTE_EG_432_1")
+                                   , (22, BG.singleton "Heif_color_primaries_EBU_Tech_3213_E")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_color_primaries"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_color_primaries"
+
+instance Show Heif_color_primaries where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_color_primaries where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_color_primaries" Heif_color_primaries ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_primaries {unwrapHeif_color_primaries = y1}
+      , BG.getField @"unwrapHeif_color_primaries" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_color_primaries" (BG.Ptr Heif_color_primaries) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_color_primaries")
+
+instance HasCField.HasCField Heif_color_primaries "unwrapHeif_color_primaries" where
+
+  type CFieldType Heif_color_primaries "unwrapHeif_color_primaries" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_709_5@
+
+    __defined at:__ @libheif\/heif_color.h 142:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_709_5 :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_709_5 = Heif_color_primaries 1
+
+{-| __C declaration:__ @heif_color_primaries_unspecified@
+
+    __defined at:__ @libheif\/heif_color.h 143:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_unspecified :: Heif_color_primaries
+pattern Heif_color_primaries_unspecified = Heif_color_primaries 2
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_470_6_System_M@
+
+    __defined at:__ @libheif\/heif_color.h 144:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_M :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_M = Heif_color_primaries 4
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_470_6_System_B_G@
+
+    __defined at:__ @libheif\/heif_color.h 145:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_B_G :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_B_G = Heif_color_primaries 5
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_601_6@
+
+    __defined at:__ @libheif\/heif_color.h 146:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_601_6 :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_601_6 = Heif_color_primaries 6
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_240M@
+
+    __defined at:__ @libheif\/heif_color.h 147:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_240M :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_240M = Heif_color_primaries 7
+
+{-| __C declaration:__ @heif_color_primaries_generic_film@
+
+    __defined at:__ @libheif\/heif_color.h 148:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_generic_film :: Heif_color_primaries
+pattern Heif_color_primaries_generic_film = Heif_color_primaries 8
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_2020_2_and_2100_0@
+
+    __defined at:__ @libheif\/heif_color.h 149:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0 :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0 = Heif_color_primaries 9
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_ST_428_1@
+
+    __defined at:__ @libheif\/heif_color.h 150:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_ST_428_1 :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_ST_428_1 = Heif_color_primaries 10
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_RP_431_2@
+
+    __defined at:__ @libheif\/heif_color.h 151:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_RP_431_2 :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_RP_431_2 = Heif_color_primaries 11
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_EG_432_1@
+
+    __defined at:__ @libheif\/heif_color.h 152:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_EG_432_1 :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_EG_432_1 = Heif_color_primaries 12
+
+{-| __C declaration:__ @heif_color_primaries_EBU_Tech_3213_E@
+
+    __defined at:__ @libheif\/heif_color.h 153:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_EBU_Tech_3213_E :: Heif_color_primaries
+pattern Heif_color_primaries_EBU_Tech_3213_E = Heif_color_primaries 22
+
+{-| __C declaration:__ @enum heif_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 156:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_transfer_characteristics = Heif_transfer_characteristics
+  { unwrapHeif_transfer_characteristics :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_transfer_characteristics where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_transfer_characteristics where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_transfer_characteristics
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_transfer_characteristics where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_transfer_characteristics unwrapHeif_transfer_characteristics2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_transfer_characteristics2
+
+deriving via Marshal.EquivStorable Heif_transfer_characteristics instance BG.Storable Heif_transfer_characteristics
+
+deriving via BG.CUInt instance BG.Prim Heif_transfer_characteristics
+
+instance CEnum.CEnum Heif_transfer_characteristics where
+
+  type CEnumZ Heif_transfer_characteristics = BG.CUInt
+
+  toCEnum = Heif_transfer_characteristics
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_transfer_characteristics"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_709_5")
+                                   , (2, BG.singleton "Heif_transfer_characteristic_unspecified")
+                                   , (4, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_470_6_System_M")
+                                   , (5, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G")
+                                   , (6, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_601_6")
+                                   , (7, BG.singleton "Heif_transfer_characteristic_SMPTE_240M")
+                                   , (8, BG.singleton "Heif_transfer_characteristic_linear")
+                                   , (9, BG.singleton "Heif_transfer_characteristic_logarithmic_100")
+                                   , (10, BG.singleton "Heif_transfer_characteristic_logarithmic_100_sqrt10")
+                                   , (11, BG.singleton "Heif_transfer_characteristic_IEC_61966_2_4")
+                                   , (12, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_1361")
+                                   , (13, BG.singleton "Heif_transfer_characteristic_IEC_61966_2_1")
+                                   , (14, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit")
+                                   , (15, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit")
+                                   , (16, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ")
+                                   , (17, BG.singleton "Heif_transfer_characteristic_SMPTE_ST_428_1")
+                                   , (18, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_transfer_characteristics"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_transfer_characteristics"
+
+instance Show Heif_transfer_characteristics where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_transfer_characteristics where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_transfer_characteristics" Heif_transfer_characteristics ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_transfer_characteristics {unwrapHeif_transfer_characteristics = y1}
+      , BG.getField @"unwrapHeif_transfer_characteristics" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_transfer_characteristics" (BG.Ptr Heif_transfer_characteristics) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_transfer_characteristics")
+
+instance HasCField.HasCField Heif_transfer_characteristics "unwrapHeif_transfer_characteristics" where
+
+  type CFieldType Heif_transfer_characteristics "unwrapHeif_transfer_characteristics" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_709_5@
+
+    __defined at:__ @libheif\/heif_color.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_709_5 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_709_5 = Heif_transfer_characteristics 1
+
+{-| __C declaration:__ @heif_transfer_characteristic_unspecified@
+
+    __defined at:__ @libheif\/heif_color.h 159:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_unspecified :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_unspecified = Heif_transfer_characteristics 2
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_470_6_System_M@
+
+    __defined at:__ @libheif\/heif_color.h 160:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_M :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_M = Heif_transfer_characteristics 4
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G@
+
+    __defined at:__ @libheif\/heif_color.h 161:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G = Heif_transfer_characteristics 5
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_601_6@
+
+    __defined at:__ @libheif\/heif_color.h 162:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_601_6 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_601_6 = Heif_transfer_characteristics 6
+
+{-| __C declaration:__ @heif_transfer_characteristic_SMPTE_240M@
+
+    __defined at:__ @libheif\/heif_color.h 163:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_SMPTE_240M :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_SMPTE_240M = Heif_transfer_characteristics 7
+
+{-| __C declaration:__ @heif_transfer_characteristic_linear@
+
+    __defined at:__ @libheif\/heif_color.h 164:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_linear :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_linear = Heif_transfer_characteristics 8
+
+{-| __C declaration:__ @heif_transfer_characteristic_logarithmic_100@
+
+    __defined at:__ @libheif\/heif_color.h 165:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_logarithmic_100 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_logarithmic_100 = Heif_transfer_characteristics 9
+
+{-| __C declaration:__ @heif_transfer_characteristic_logarithmic_100_sqrt10@
+
+    __defined at:__ @libheif\/heif_color.h 166:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_logarithmic_100_sqrt10 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_logarithmic_100_sqrt10 = Heif_transfer_characteristics 10
+
+{-| __C declaration:__ @heif_transfer_characteristic_IEC_61966_2_4@
+
+    __defined at:__ @libheif\/heif_color.h 167:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_IEC_61966_2_4 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_IEC_61966_2_4 = Heif_transfer_characteristics 11
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_1361@
+
+    __defined at:__ @libheif\/heif_color.h 168:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_1361 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_1361 = Heif_transfer_characteristics 12
+
+{-| __C declaration:__ @heif_transfer_characteristic_IEC_61966_2_1@
+
+    __defined at:__ @libheif\/heif_color.h 169:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_IEC_61966_2_1 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_IEC_61966_2_1 = Heif_transfer_characteristics 13
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2020_2_10bit@
+
+    __defined at:__ @libheif\/heif_color.h 170:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit = Heif_transfer_characteristics 14
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2020_2_12bit@
+
+    __defined at:__ @libheif\/heif_color.h 171:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit = Heif_transfer_characteristics 15
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2100_0_PQ@
+
+    __defined at:__ @libheif\/heif_color.h 172:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ = Heif_transfer_characteristics 16
+
+{-| __C declaration:__ @heif_transfer_characteristic_SMPTE_ST_428_1@
+
+    __defined at:__ @libheif\/heif_color.h 173:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_SMPTE_ST_428_1 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_SMPTE_ST_428_1 = Heif_transfer_characteristics 17
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2100_0_HLG@
+
+    __defined at:__ @libheif\/heif_color.h 174:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG = Heif_transfer_characteristics 18
+
+{-| __C declaration:__ @enum heif_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 177:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_matrix_coefficients = Heif_matrix_coefficients
+  { unwrapHeif_matrix_coefficients :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_matrix_coefficients where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_matrix_coefficients where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_matrix_coefficients
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_matrix_coefficients where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_matrix_coefficients unwrapHeif_matrix_coefficients2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_matrix_coefficients2
+
+deriving via Marshal.EquivStorable Heif_matrix_coefficients instance BG.Storable Heif_matrix_coefficients
+
+deriving via BG.CUInt instance BG.Prim Heif_matrix_coefficients
+
+instance CEnum.CEnum Heif_matrix_coefficients where
+
+  type CEnumZ Heif_matrix_coefficients = BG.CUInt
+
+  toCEnum = Heif_matrix_coefficients
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_matrix_coefficients"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_matrix_coefficients_RGB_GBR")
+                                   , (1, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_709_5")
+                                   , (2, BG.singleton "Heif_matrix_coefficients_unspecified")
+                                   , (4, BG.singleton "Heif_matrix_coefficients_US_FCC_T47")
+                                   , (5, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G")
+                                   , (6, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_601_6")
+                                   , (7, BG.singleton "Heif_matrix_coefficients_SMPTE_240M")
+                                   , (8, BG.singleton "Heif_matrix_coefficients_YCgCo")
+                                   , ( 9
+                                     , BG.singleton "Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance"
+                                     )
+                                   , (10, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance")
+                                   , (11, BG.singleton "Heif_matrix_coefficients_SMPTE_ST_2085")
+                                   , ( 12
+                                     , BG.singleton "Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance"
+                                     )
+                                   , ( 13
+                                     , BG.singleton "Heif_matrix_coefficients_chromaticity_derived_constant_luminance"
+                                     )
+                                   , (14, BG.singleton "Heif_matrix_coefficients_ICtCp")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_matrix_coefficients"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_matrix_coefficients"
+
+instance Show Heif_matrix_coefficients where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_matrix_coefficients where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_matrix_coefficients" Heif_matrix_coefficients ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_matrix_coefficients {unwrapHeif_matrix_coefficients = y1}
+      , BG.getField @"unwrapHeif_matrix_coefficients" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_matrix_coefficients" (BG.Ptr Heif_matrix_coefficients) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_matrix_coefficients")
+
+instance HasCField.HasCField Heif_matrix_coefficients "unwrapHeif_matrix_coefficients" where
+
+  type CFieldType Heif_matrix_coefficients "unwrapHeif_matrix_coefficients" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_matrix_coefficients_RGB_GBR@
+
+    __defined at:__ @libheif\/heif_color.h 179:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_RGB_GBR :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_RGB_GBR = Heif_matrix_coefficients 0
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_709_5@
+
+    __defined at:__ @libheif\/heif_color.h 180:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_709_5 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_709_5 = Heif_matrix_coefficients 1
+
+{-| __C declaration:__ @heif_matrix_coefficients_unspecified@
+
+    __defined at:__ @libheif\/heif_color.h 181:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_unspecified :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_unspecified = Heif_matrix_coefficients 2
+
+{-| __C declaration:__ @heif_matrix_coefficients_US_FCC_T47@
+
+    __defined at:__ @libheif\/heif_color.h 182:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_US_FCC_T47 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_US_FCC_T47 = Heif_matrix_coefficients 4
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G@
+
+    __defined at:__ @libheif\/heif_color.h 183:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G = Heif_matrix_coefficients 5
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_601_6@
+
+    __defined at:__ @libheif\/heif_color.h 184:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_601_6 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_601_6 = Heif_matrix_coefficients 6
+
+{-| __C declaration:__ @heif_matrix_coefficients_SMPTE_240M@
+
+    __defined at:__ @libheif\/heif_color.h 185:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_SMPTE_240M :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_SMPTE_240M = Heif_matrix_coefficients 7
+
+{-| __C declaration:__ @heif_matrix_coefficients_YCgCo@
+
+    __defined at:__ @libheif\/heif_color.h 186:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_YCgCo :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_YCgCo = Heif_matrix_coefficients 8
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 187:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance = Heif_matrix_coefficients 9
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 188:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance = Heif_matrix_coefficients 10
+
+{-| __C declaration:__ @heif_matrix_coefficients_SMPTE_ST_2085@
+
+    __defined at:__ @libheif\/heif_color.h 189:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_SMPTE_ST_2085 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_SMPTE_ST_2085 = Heif_matrix_coefficients 11
+
+{-| __C declaration:__ @heif_matrix_coefficients_chromaticity_derived_non_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 190:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance = Heif_matrix_coefficients 12
+
+{-| __C declaration:__ @heif_matrix_coefficients_chromaticity_derived_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 191:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_chromaticity_derived_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_chromaticity_derived_constant_luminance = Heif_matrix_coefficients 13
+
+{-| __C declaration:__ @heif_matrix_coefficients_ICtCp@
+
+    __defined at:__ @libheif\/heif_color.h 192:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ICtCp :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ICtCp = Heif_matrix_coefficients 14
+
+{-| __C declaration:__ @struct heif_color_profile_nclx@
+
+    __defined at:__ @libheif\/heif_color.h 195:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_color_profile_nclx = Heif_color_profile_nclx
+  { heif_color_profile_nclx_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_color.h 199:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primaries :: Heif_color_primaries
+    {- ^ __C declaration:__ @color_primaries@
+
+         __defined at:__ @libheif\/heif_color.h 201:24@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_transfer_characteristics :: Heif_transfer_characteristics
+    {- ^ __C declaration:__ @transfer_characteristics@
+
+         __defined at:__ @libheif\/heif_color.h 202:33@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_matrix_coefficients :: Heif_matrix_coefficients
+    {- ^ __C declaration:__ @matrix_coefficients@
+
+         __defined at:__ @libheif\/heif_color.h 203:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_full_range_flag :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @full_range_flag@
+
+         __defined at:__ @libheif\/heif_color.h 204:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_red_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_red_x@
+
+         __defined at:__ @libheif\/heif_color.h 208:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_red_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_red_y@
+
+         __defined at:__ @libheif\/heif_color.h 208:30@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_green_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_green_x@
+
+         __defined at:__ @libheif\/heif_color.h 209:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_green_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_green_y@
+
+         __defined at:__ @libheif\/heif_color.h 209:32@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_blue_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_blue_x@
+
+         __defined at:__ @libheif\/heif_color.h 210:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_blue_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_blue_y@
+
+         __defined at:__ @libheif\/heif_color.h 210:31@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_white_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_white_x@
+
+         __defined at:__ @libheif\/heif_color.h 211:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_white_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_white_y@
+
+         __defined at:__ @libheif\/heif_color.h 211:32@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_color_profile_nclx where
+
+  staticSizeOf = \_ -> (52 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_profile_nclx where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_profile_nclx
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primaries") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_transfer_characteristics") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_matrix_coefficients") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_full_range_flag") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_y") ptr0
+
+instance Marshal.WriteRaw Heif_color_profile_nclx where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_profile_nclx
+            heif_color_profile_nclx_version2
+            heif_color_profile_nclx_color_primaries3
+            heif_color_profile_nclx_transfer_characteristics4
+            heif_color_profile_nclx_matrix_coefficients5
+            heif_color_profile_nclx_full_range_flag6
+            heif_color_profile_nclx_color_primary_red_x7
+            heif_color_profile_nclx_color_primary_red_y8
+            heif_color_profile_nclx_color_primary_green_x9
+            heif_color_profile_nclx_color_primary_green_y10
+            heif_color_profile_nclx_color_primary_blue_x11
+            heif_color_profile_nclx_color_primary_blue_y12
+            heif_color_profile_nclx_color_primary_white_x13
+            heif_color_profile_nclx_color_primary_white_y14 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_version") ptr0 heif_color_profile_nclx_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primaries") ptr0 heif_color_profile_nclx_color_primaries3
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_transfer_characteristics") ptr0 heif_color_profile_nclx_transfer_characteristics4
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_matrix_coefficients") ptr0 heif_color_profile_nclx_matrix_coefficients5
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_full_range_flag") ptr0 heif_color_profile_nclx_full_range_flag6
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_x") ptr0 heif_color_profile_nclx_color_primary_red_x7
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_y") ptr0 heif_color_profile_nclx_color_primary_red_y8
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_x") ptr0 heif_color_profile_nclx_color_primary_green_x9
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_y") ptr0 heif_color_profile_nclx_color_primary_green_y10
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_x") ptr0 heif_color_profile_nclx_color_primary_blue_x11
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_y") ptr0 heif_color_profile_nclx_color_primary_blue_y12
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_x") ptr0 heif_color_profile_nclx_color_primary_white_x13
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_y") ptr0 heif_color_profile_nclx_color_primary_white_y14
+
+deriving via Marshal.EquivStorable Heif_color_profile_nclx instance BG.Storable Heif_color_profile_nclx
+
+deriving via Struct.IsStructViaReadRaw Heif_color_profile_nclx instance Struct.IsStruct Heif_color_profile_nclx
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_color.h 199:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_version" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_version = y1
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_profile_nclx_version" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_version")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_version" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 201:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_color_primaries
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primaries" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primaries = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primaries" x0
+      )
+
+instance ( ty ~ Heif_color_primaries
+         ) => BG.HasField "heif_color_profile_nclx_color_primaries" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primaries")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primaries" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primaries" =
+    Heif_color_primaries
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 202:33@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_transfer_characteristics
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_transfer_characteristics" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_transfer_characteristics = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+      )
+
+instance ( ty ~ Heif_transfer_characteristics
+         ) => BG.HasField "heif_color_profile_nclx_transfer_characteristics" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_transfer_characteristics")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_transfer_characteristics" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_transfer_characteristics" =
+    Heif_transfer_characteristics
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 203:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_matrix_coefficients
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_matrix_coefficients" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_matrix_coefficients = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+      )
+
+instance ( ty ~ Heif_matrix_coefficients
+         ) => BG.HasField "heif_color_profile_nclx_matrix_coefficients" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_matrix_coefficients")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_matrix_coefficients" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_matrix_coefficients" =
+    Heif_matrix_coefficients
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @full_range_flag@
+
+    __defined at:__ @libheif\/heif_color.h 204:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_full_range_flag" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_full_range_flag = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_profile_nclx_full_range_flag" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_full_range_flag")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_full_range_flag" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_full_range_flag" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @color_primary_red_x@
+
+    __defined at:__ @libheif\/heif_color.h 208:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_red_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_red_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_red_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_red_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @color_primary_red_y@
+
+    __defined at:__ @libheif\/heif_color.h 208:30@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_red_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_red_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_red_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_red_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @color_primary_green_x@
+
+    __defined at:__ @libheif\/heif_color.h 209:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_green_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_green_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_green_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_green_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @color_primary_green_y@
+
+    __defined at:__ @libheif\/heif_color.h 209:32@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_green_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_green_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_green_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_green_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @color_primary_blue_x@
+
+    __defined at:__ @libheif\/heif_color.h 210:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_blue_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_blue_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_blue_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 36
+
+{-| __C declaration:__ @color_primary_blue_y@
+
+    __defined at:__ @libheif\/heif_color.h 210:31@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_blue_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_blue_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_blue_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @color_primary_white_x@
+
+    __defined at:__ @libheif\/heif_color.h 211:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_white_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_white_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_white_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_white_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 44
+
+{-| __C declaration:__ @color_primary_white_y@
+
+    __defined at:__ @libheif\/heif_color.h 211:32@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_white_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_white_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_white_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_white_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @struct heif_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 285:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_content_light_level = Heif_content_light_level
+  { heif_content_light_level_max_content_light_level :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @max_content_light_level@
+
+         __defined at:__ @libheif\/heif_color.h 290:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_content_light_level_max_pic_average_light_level :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @max_pic_average_light_level@
+
+         __defined at:__ @libheif\/heif_color.h 297:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_content_light_level where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (2 :: Int)
+
+instance Marshal.ReadRaw Heif_content_light_level where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_content_light_level
+      <*> HasCField.readRaw (BG.Proxy @"heif_content_light_level_max_content_light_level") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_content_light_level_max_pic_average_light_level") ptr0
+
+instance Marshal.WriteRaw Heif_content_light_level where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_content_light_level
+            heif_content_light_level_max_content_light_level2
+            heif_content_light_level_max_pic_average_light_level3 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_content_light_level_max_content_light_level") ptr0 heif_content_light_level_max_content_light_level2
+              >> HasCField.writeRaw (BG.Proxy @"heif_content_light_level_max_pic_average_light_level") ptr0 heif_content_light_level_max_pic_average_light_level3
+
+deriving via Marshal.EquivStorable Heif_content_light_level instance BG.Storable Heif_content_light_level
+
+deriving via Struct.IsStructViaReadRaw Heif_content_light_level instance Struct.IsStruct Heif_content_light_level
+
+{-| __C declaration:__ @max_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 290:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_content_light_level_max_content_light_level" Heif_content_light_level ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_content_light_level { heif_content_light_level_max_content_light_level = y1
+                                   , heif_content_light_level_max_pic_average_light_level = BG.getField @"heif_content_light_level_max_pic_average_light_level" x0
+                                   }
+      , BG.getField @"heif_content_light_level_max_content_light_level" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_content_light_level_max_content_light_level" (BG.Ptr Heif_content_light_level) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_content_light_level_max_content_light_level")
+
+instance HasCField.HasCField Heif_content_light_level "heif_content_light_level_max_content_light_level" where
+
+  type CFieldType Heif_content_light_level "heif_content_light_level_max_content_light_level" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @max_pic_average_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 297:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_content_light_level_max_pic_average_light_level" Heif_content_light_level ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_content_light_level { heif_content_light_level_max_pic_average_light_level = y1
+                                   , heif_content_light_level_max_content_light_level = BG.getField @"heif_content_light_level_max_content_light_level" x0
+                                   }
+      , BG.getField @"heif_content_light_level_max_pic_average_light_level" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_content_light_level_max_pic_average_light_level" (BG.Ptr Heif_content_light_level) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_content_light_level_max_pic_average_light_level")
+
+instance HasCField.HasCField Heif_content_light_level "heif_content_light_level_max_pic_average_light_level" where
+
+  type CFieldType Heif_content_light_level "heif_content_light_level_max_pic_average_light_level" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 2
+
+{-| __C declaration:__ @struct heif_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 332:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_mastering_display_colour_volume = Heif_mastering_display_colour_volume
+  { heif_mastering_display_colour_volume_display_primaries_x :: CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @display_primaries_x@
+
+         __defined at:__ @libheif\/heif_color.h 340:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_display_primaries_y :: CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @display_primaries_y@
+
+         __defined at:__ @libheif\/heif_color.h 341:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_white_point_x :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @white_point_x@
+
+         __defined at:__ @libheif\/heif_color.h 348:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_white_point_y :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @white_point_y@
+
+         __defined at:__ @libheif\/heif_color.h 349:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_max_display_mastering_luminance :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 360:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_min_display_mastering_luminance :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @min_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 361:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_mastering_display_colour_volume where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_mastering_display_colour_volume where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_mastering_display_colour_volume
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_max_display_mastering_luminance") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_min_display_mastering_luminance") ptr0
+
+instance Marshal.WriteRaw Heif_mastering_display_colour_volume where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_mastering_display_colour_volume
+            heif_mastering_display_colour_volume_display_primaries_x2
+            heif_mastering_display_colour_volume_display_primaries_y3
+            heif_mastering_display_colour_volume_white_point_x4
+            heif_mastering_display_colour_volume_white_point_y5
+            heif_mastering_display_colour_volume_max_display_mastering_luminance6
+            heif_mastering_display_colour_volume_min_display_mastering_luminance7 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_x") ptr0 heif_mastering_display_colour_volume_display_primaries_x2
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_y") ptr0 heif_mastering_display_colour_volume_display_primaries_y3
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_x") ptr0 heif_mastering_display_colour_volume_white_point_x4
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_y") ptr0 heif_mastering_display_colour_volume_white_point_y5
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_max_display_mastering_luminance") ptr0 heif_mastering_display_colour_volume_max_display_mastering_luminance6
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_min_display_mastering_luminance") ptr0 heif_mastering_display_colour_volume_min_display_mastering_luminance7
+
+deriving via Marshal.EquivStorable Heif_mastering_display_colour_volume instance BG.Storable Heif_mastering_display_colour_volume
+
+deriving via Struct.IsStructViaReadRaw Heif_mastering_display_colour_volume instance Struct.IsStruct Heif_mastering_display_colour_volume
+
+{-| __C declaration:__ @display_primaries_x@
+
+    __defined at:__ @libheif\/heif_color.h 340:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_display_primaries_x" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_display_primaries_x = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_display_primaries_x" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_x")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_x" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_x" =
+    CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @display_primaries_y@
+
+    __defined at:__ @libheif\/heif_color.h 341:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_display_primaries_y" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_display_primaries_y = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_display_primaries_y" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_y")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_y" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_y" =
+    CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 6
+
+{-| __C declaration:__ @white_point_x@
+
+    __defined at:__ @libheif\/heif_color.h 348:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_white_point_x" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_white_point_x = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_white_point_x" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_white_point_x")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_x" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_x" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @white_point_y@
+
+    __defined at:__ @libheif\/heif_color.h 349:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_white_point_y" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_white_point_y = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_white_point_y" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_white_point_y")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_y" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_y" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 14
+
+{-| __C declaration:__ @max_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 360:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_max_display_mastering_luminance" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_max_display_mastering_luminance = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_mastering_display_colour_volume_max_display_mastering_luminance" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_max_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_max_display_mastering_luminance" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_max_display_mastering_luminance" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @min_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 361:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_min_display_mastering_luminance" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_min_display_mastering_luminance = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_mastering_display_colour_volume_min_display_mastering_luminance" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_min_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_min_display_mastering_luminance" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_min_display_mastering_luminance" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @struct heif_decoded_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 365:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoded_mastering_display_colour_volume = Heif_decoded_mastering_display_colour_volume
+  { heif_decoded_mastering_display_colour_volume_display_primaries_x :: CA.ConstantArray 3 BG.CFloat
+    {- ^ __C declaration:__ @display_primaries_x@
+
+         __defined at:__ @libheif\/heif_color.h 367:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_display_primaries_y :: CA.ConstantArray 3 BG.CFloat
+    {- ^ __C declaration:__ @display_primaries_y@
+
+         __defined at:__ @libheif\/heif_color.h 368:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_white_point_x :: BG.CFloat
+    {- ^ __C declaration:__ @white_point_x@
+
+         __defined at:__ @libheif\/heif_color.h 369:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_white_point_y :: BG.CFloat
+    {- ^ __C declaration:__ @white_point_y@
+
+         __defined at:__ @libheif\/heif_color.h 370:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance :: BG.CDouble
+    {- ^ __C declaration:__ @max_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 371:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance :: BG.CDouble
+    {- ^ __C declaration:__ @min_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 372:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_decoded_mastering_display_colour_volume where
+
+  staticSizeOf = \_ -> (48 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_decoded_mastering_display_colour_volume where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_decoded_mastering_display_colour_volume
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance") ptr0
+
+instance Marshal.WriteRaw Heif_decoded_mastering_display_colour_volume where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_decoded_mastering_display_colour_volume
+            heif_decoded_mastering_display_colour_volume_display_primaries_x2
+            heif_decoded_mastering_display_colour_volume_display_primaries_y3
+            heif_decoded_mastering_display_colour_volume_white_point_x4
+            heif_decoded_mastering_display_colour_volume_white_point_y5
+            heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance6
+            heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance7 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_x") ptr0 heif_decoded_mastering_display_colour_volume_display_primaries_x2
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_y") ptr0 heif_decoded_mastering_display_colour_volume_display_primaries_y3
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_x") ptr0 heif_decoded_mastering_display_colour_volume_white_point_x4
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_y") ptr0 heif_decoded_mastering_display_colour_volume_white_point_y5
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance") ptr0 heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance6
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance") ptr0 heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance7
+
+deriving via Marshal.EquivStorable Heif_decoded_mastering_display_colour_volume instance BG.Storable Heif_decoded_mastering_display_colour_volume
+
+deriving via Struct.IsStructViaReadRaw Heif_decoded_mastering_display_colour_volume instance Struct.IsStruct Heif_decoded_mastering_display_colour_volume
+
+{-| __C declaration:__ @display_primaries_x@
+
+    __defined at:__ @libheif\/heif_color.h 367:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_x" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_display_primaries_x = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_x" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_x")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_x" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_x" =
+    CA.ConstantArray 3 BG.CFloat
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @display_primaries_y@
+
+    __defined at:__ @libheif\/heif_color.h 368:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_y" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_display_primaries_y = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_y" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_y")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_y" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_y" =
+    CA.ConstantArray 3 BG.CFloat
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @white_point_x@
+
+    __defined at:__ @libheif\/heif_color.h 369:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_white_point_x" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_white_point_x = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_white_point_x" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_x")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_x" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @white_point_y@
+
+    __defined at:__ @libheif\/heif_color.h 370:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_white_point_y" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_white_point_y = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_white_point_y" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_y")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_y" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @max_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 371:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @min_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 372:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @struct heif_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 378:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_ambient_viewing_environment = Heif_ambient_viewing_environment
+  { heif_ambient_viewing_environment_ambient_illumination :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @ambient_illumination@
+
+         __defined at:__ @libheif\/heif_color.h 384:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_ambient_viewing_environment_ambient_light_x :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @ambient_light_x@
+
+         __defined at:__ @libheif\/heif_color.h 393:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_ambient_viewing_environment_ambient_light_y :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @ambient_light_y@
+
+         __defined at:__ @libheif\/heif_color.h 394:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_ambient_viewing_environment where
+
+  staticSizeOf = \_ -> (8 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_ambient_viewing_environment where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_ambient_viewing_environment
+      <*> HasCField.readRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_illumination") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_y") ptr0
+
+instance Marshal.WriteRaw Heif_ambient_viewing_environment where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_ambient_viewing_environment
+            heif_ambient_viewing_environment_ambient_illumination2
+            heif_ambient_viewing_environment_ambient_light_x3
+            heif_ambient_viewing_environment_ambient_light_y4 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_illumination") ptr0 heif_ambient_viewing_environment_ambient_illumination2
+              >> HasCField.writeRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_x") ptr0 heif_ambient_viewing_environment_ambient_light_x3
+              >> HasCField.writeRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_y") ptr0 heif_ambient_viewing_environment_ambient_light_y4
+
+deriving via Marshal.EquivStorable Heif_ambient_viewing_environment instance BG.Storable Heif_ambient_viewing_environment
+
+deriving via Struct.IsStructViaReadRaw Heif_ambient_viewing_environment instance Struct.IsStruct Heif_ambient_viewing_environment
+
+{-| __C declaration:__ @ambient_illumination@
+
+    __defined at:__ @libheif\/heif_color.h 384:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_ambient_viewing_environment_ambient_illumination" Heif_ambient_viewing_environment ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_ambient_viewing_environment { heif_ambient_viewing_environment_ambient_illumination = y1
+                                           , heif_ambient_viewing_environment_ambient_light_x = BG.getField @"heif_ambient_viewing_environment_ambient_light_x" x0
+                                           , heif_ambient_viewing_environment_ambient_light_y = BG.getField @"heif_ambient_viewing_environment_ambient_light_y" x0
+                                           }
+      , BG.getField @"heif_ambient_viewing_environment_ambient_illumination" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_ambient_viewing_environment_ambient_illumination" (BG.Ptr Heif_ambient_viewing_environment) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_ambient_viewing_environment_ambient_illumination")
+
+instance HasCField.HasCField Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_illumination" where
+
+  type CFieldType Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_illumination" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @ambient_light_x@
+
+    __defined at:__ @libheif\/heif_color.h 393:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_ambient_viewing_environment_ambient_light_x" Heif_ambient_viewing_environment ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_ambient_viewing_environment { heif_ambient_viewing_environment_ambient_light_x = y1
+                                           , heif_ambient_viewing_environment_ambient_illumination = BG.getField @"heif_ambient_viewing_environment_ambient_illumination" x0
+                                           , heif_ambient_viewing_environment_ambient_light_y = BG.getField @"heif_ambient_viewing_environment_ambient_light_y" x0
+                                           }
+      , BG.getField @"heif_ambient_viewing_environment_ambient_light_x" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_ambient_viewing_environment_ambient_light_x" (BG.Ptr Heif_ambient_viewing_environment) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_x")
+
+instance HasCField.HasCField Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_x" where
+
+  type CFieldType Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_x" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @ambient_light_y@
+
+    __defined at:__ @libheif\/heif_color.h 394:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_ambient_viewing_environment_ambient_light_y" Heif_ambient_viewing_environment ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_ambient_viewing_environment { heif_ambient_viewing_environment_ambient_light_y = y1
+                                           , heif_ambient_viewing_environment_ambient_illumination = BG.getField @"heif_ambient_viewing_environment_ambient_illumination" x0
+                                           , heif_ambient_viewing_environment_ambient_light_x = BG.getField @"heif_ambient_viewing_environment_ambient_light_x" x0
+                                           }
+      , BG.getField @"heif_ambient_viewing_environment_ambient_light_y" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_ambient_viewing_environment_ambient_light_y" (BG.Ptr Heif_ambient_viewing_environment) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_y")
+
+instance HasCField.HasCField Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_y" where
+
+  type CFieldType Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_y" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 6
+
+{-| __C declaration:__ @heif_brand2@
+
+    __defined at:__ @libheif\/heif_brands.h 35:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_brand2 = Heif_brand2
+  { unwrapHeif_brand2 :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_brand2" Heif_brand2 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_brand2 {unwrapHeif_brand2 = y1}
+      , BG.getField @"unwrapHeif_brand2" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_brand2" (BG.Ptr Heif_brand2) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_brand2")
+
+instance HasCField.HasCField Heif_brand2 "unwrapHeif_brand2" where
+
+  type CFieldType Heif_brand2 "unwrapHeif_brand2" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @enum heif_filetype_result@
+
+    __defined at:__ @libheif\/heif_brands.h 323:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_filetype_result = Heif_filetype_result
+  { unwrapHeif_filetype_result :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_filetype_result where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_filetype_result where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_filetype_result
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_filetype_result where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_filetype_result unwrapHeif_filetype_result2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_filetype_result2
+
+deriving via Marshal.EquivStorable Heif_filetype_result instance BG.Storable Heif_filetype_result
+
+deriving via BG.CUInt instance BG.Prim Heif_filetype_result
+
+instance CEnum.CEnum Heif_filetype_result where
+
+  type CEnumZ Heif_filetype_result = BG.CUInt
+
+  toCEnum = Heif_filetype_result
+
+  fromCEnum = BG.getField @"unwrapHeif_filetype_result"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_filetype_no")
+                                   , (1, BG.singleton "Heif_filetype_yes_supported")
+                                   , (2, BG.singleton "Heif_filetype_yes_unsupported")
+                                   , (3, BG.singleton "Heif_filetype_maybe")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_filetype_result"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_filetype_result"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_filetype_result where
+
+  minDeclaredValue = Heif_filetype_no
+
+  maxDeclaredValue = Heif_filetype_maybe
+
+instance Show Heif_filetype_result where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_filetype_result where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_filetype_result" Heif_filetype_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_filetype_result {unwrapHeif_filetype_result = y1}
+      , BG.getField @"unwrapHeif_filetype_result" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_filetype_result" (BG.Ptr Heif_filetype_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_filetype_result")
+
+instance HasCField.HasCField Heif_filetype_result "unwrapHeif_filetype_result" where
+
+  type CFieldType Heif_filetype_result "unwrapHeif_filetype_result" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_filetype_no@
+
+    __defined at:__ @libheif\/heif_brands.h 325:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_no :: Heif_filetype_result
+pattern Heif_filetype_no = Heif_filetype_result 0
+
+{-| __C declaration:__ @heif_filetype_yes_supported@
+
+    __defined at:__ @libheif\/heif_brands.h 326:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_yes_supported :: Heif_filetype_result
+pattern Heif_filetype_yes_supported = Heif_filetype_result 1
+
+{-| __C declaration:__ @heif_filetype_yes_unsupported@
+
+    __defined at:__ @libheif\/heif_brands.h 327:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_yes_unsupported :: Heif_filetype_result
+pattern Heif_filetype_yes_unsupported = Heif_filetype_result 2
+
+{-| __C declaration:__ @heif_filetype_maybe@
+
+    __defined at:__ @libheif\/heif_brands.h 328:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_maybe :: Heif_filetype_result
+pattern Heif_filetype_maybe = Heif_filetype_result 3
+
+{-| __C declaration:__ @enum heif_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 354:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_brand = Heif_brand
+  { unwrapHeif_brand :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_brand where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_brand where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_brand
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_brand where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_brand unwrapHeif_brand2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_brand2
+
+deriving via Marshal.EquivStorable Heif_brand instance BG.Storable Heif_brand
+
+deriving via BG.CUInt instance BG.Prim Heif_brand
+
+instance CEnum.CEnum Heif_brand where
+
+  type CEnumZ Heif_brand = BG.CUInt
+
+  toCEnum = Heif_brand
+
+  fromCEnum = BG.getField @"unwrapHeif_brand"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_unknown_brand")
+                                   , (1, BG.singleton "Heif_heic")
+                                   , (2, BG.singleton "Heif_heix")
+                                   , (3, BG.singleton "Heif_hevc")
+                                   , (4, BG.singleton "Heif_hevx")
+                                   , (5, BG.singleton "Heif_heim")
+                                   , (6, BG.singleton "Heif_heis")
+                                   , (7, BG.singleton "Heif_hevm")
+                                   , (8, BG.singleton "Heif_hevs")
+                                   , (9, BG.singleton "Heif_mif1")
+                                   , (10, BG.singleton "Heif_msf1")
+                                   , (11, BG.singleton "Heif_avif")
+                                   , (12, BG.singleton "Heif_avis")
+                                   , (13, BG.singleton "Heif_vvic")
+                                   , (14, BG.singleton "Heif_vvis")
+                                   , (15, BG.singleton "Heif_evbi")
+                                   , (16, BG.singleton "Heif_evbs")
+                                   , (17, BG.singleton "Heif_j2ki")
+                                   , (18, BG.singleton "Heif_j2is")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_brand"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_brand"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_brand where
+
+  minDeclaredValue = Heif_unknown_brand
+
+  maxDeclaredValue = Heif_j2is
+
+instance Show Heif_brand where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_brand where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_brand" Heif_brand ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_brand {unwrapHeif_brand = y1}
+      , BG.getField @"unwrapHeif_brand" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_brand" (BG.Ptr Heif_brand) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_brand")
+
+instance HasCField.HasCField Heif_brand "unwrapHeif_brand" where
+
+  type CFieldType Heif_brand "unwrapHeif_brand" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_unknown_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 356:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_unknown_brand :: Heif_brand
+pattern Heif_unknown_brand = Heif_brand 0
+
+{-| __C declaration:__ @heif_heic@
+
+    __defined at:__ @libheif\/heif_brands.h 357:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heic :: Heif_brand
+pattern Heif_heic = Heif_brand 1
+
+{-| __C declaration:__ @heif_heix@
+
+    __defined at:__ @libheif\/heif_brands.h 358:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heix :: Heif_brand
+pattern Heif_heix = Heif_brand 2
+
+{-| __C declaration:__ @heif_hevc@
+
+    __defined at:__ @libheif\/heif_brands.h 359:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevc :: Heif_brand
+pattern Heif_hevc = Heif_brand 3
+
+{-| __C declaration:__ @heif_hevx@
+
+    __defined at:__ @libheif\/heif_brands.h 359:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevx :: Heif_brand
+pattern Heif_hevx = Heif_brand 4
+
+{-| __C declaration:__ @heif_heim@
+
+    __defined at:__ @libheif\/heif_brands.h 360:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heim :: Heif_brand
+pattern Heif_heim = Heif_brand 5
+
+{-| __C declaration:__ @heif_heis@
+
+    __defined at:__ @libheif\/heif_brands.h 361:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heis :: Heif_brand
+pattern Heif_heis = Heif_brand 6
+
+{-| __C declaration:__ @heif_hevm@
+
+    __defined at:__ @libheif\/heif_brands.h 362:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevm :: Heif_brand
+pattern Heif_hevm = Heif_brand 7
+
+{-| __C declaration:__ @heif_hevs@
+
+    __defined at:__ @libheif\/heif_brands.h 363:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevs :: Heif_brand
+pattern Heif_hevs = Heif_brand 8
+
+{-| __C declaration:__ @heif_mif1@
+
+    __defined at:__ @libheif\/heif_brands.h 364:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_mif1 :: Heif_brand
+pattern Heif_mif1 = Heif_brand 9
+
+{-| __C declaration:__ @heif_msf1@
+
+    __defined at:__ @libheif\/heif_brands.h 365:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_msf1 :: Heif_brand
+pattern Heif_msf1 = Heif_brand 10
+
+{-| __C declaration:__ @heif_avif@
+
+    __defined at:__ @libheif\/heif_brands.h 366:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_avif :: Heif_brand
+pattern Heif_avif = Heif_brand 11
+
+{-| __C declaration:__ @heif_avis@
+
+    __defined at:__ @libheif\/heif_brands.h 367:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_avis :: Heif_brand
+pattern Heif_avis = Heif_brand 12
+
+{-| __C declaration:__ @heif_vvic@
+
+    __defined at:__ @libheif\/heif_brands.h 368:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_vvic :: Heif_brand
+pattern Heif_vvic = Heif_brand 13
+
+{-| __C declaration:__ @heif_vvis@
+
+    __defined at:__ @libheif\/heif_brands.h 369:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_vvis :: Heif_brand
+pattern Heif_vvis = Heif_brand 14
+
+{-| __C declaration:__ @heif_evbi@
+
+    __defined at:__ @libheif\/heif_brands.h 370:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_evbi :: Heif_brand
+pattern Heif_evbi = Heif_brand 15
+
+{-| __C declaration:__ @heif_evbs@
+
+    __defined at:__ @libheif\/heif_brands.h 371:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_evbs :: Heif_brand
+pattern Heif_evbs = Heif_brand 16
+
+{-| __C declaration:__ @heif_j2ki@
+
+    __defined at:__ @libheif\/heif_brands.h 372:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_j2ki :: Heif_brand
+pattern Heif_j2ki = Heif_brand 17
+
+{-| __C declaration:__ @heif_j2is@
+
+    __defined at:__ @libheif\/heif_brands.h 373:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_j2is :: Heif_brand
+pattern Heif_j2is = Heif_brand 18
+
+{-| __C declaration:__ @enum heif_metadata_compression@
+
+    __defined at:__ @libheif\/heif_metadata.h 31:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_metadata_compression = Heif_metadata_compression
+  { unwrapHeif_metadata_compression :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_metadata_compression where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_metadata_compression where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_metadata_compression
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_metadata_compression where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_metadata_compression unwrapHeif_metadata_compression2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_metadata_compression2
+
+deriving via Marshal.EquivStorable Heif_metadata_compression instance BG.Storable Heif_metadata_compression
+
+deriving via BG.CUInt instance BG.Prim Heif_metadata_compression
+
+instance CEnum.CEnum Heif_metadata_compression where
+
+  type CEnumZ Heif_metadata_compression = BG.CUInt
+
+  toCEnum = Heif_metadata_compression
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_metadata_compression"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_metadata_compression_off")
+                                   , (1, BG.singleton "Heif_metadata_compression_auto")
+                                   , (2, BG.singleton "Heif_metadata_compression_unknown")
+                                   , (3, BG.singleton "Heif_metadata_compression_deflate")
+                                   , (4, BG.singleton "Heif_metadata_compression_zlib")
+                                   , (5, BG.singleton "Heif_metadata_compression_brotli")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_metadata_compression"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_metadata_compression"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_metadata_compression where
+
+  minDeclaredValue = Heif_metadata_compression_off
+
+  maxDeclaredValue = Heif_metadata_compression_brotli
+
+instance Show Heif_metadata_compression where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_metadata_compression where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_metadata_compression" Heif_metadata_compression ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_metadata_compression {unwrapHeif_metadata_compression = y1}
+      , BG.getField @"unwrapHeif_metadata_compression" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_metadata_compression" (BG.Ptr Heif_metadata_compression) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_metadata_compression")
+
+instance HasCField.HasCField Heif_metadata_compression "unwrapHeif_metadata_compression" where
+
+  type CFieldType Heif_metadata_compression "unwrapHeif_metadata_compression" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_metadata_compression_off@
+
+    __defined at:__ @libheif\/heif_metadata.h 33:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_off :: Heif_metadata_compression
+pattern Heif_metadata_compression_off = Heif_metadata_compression 0
+
+{-| __C declaration:__ @heif_metadata_compression_auto@
+
+    __defined at:__ @libheif\/heif_metadata.h 34:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_auto :: Heif_metadata_compression
+pattern Heif_metadata_compression_auto = Heif_metadata_compression 1
+
+{-| __C declaration:__ @heif_metadata_compression_unknown@
+
+    __defined at:__ @libheif\/heif_metadata.h 35:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_unknown :: Heif_metadata_compression
+pattern Heif_metadata_compression_unknown = Heif_metadata_compression 2
+
+{-| __C declaration:__ @heif_metadata_compression_deflate@
+
+    __defined at:__ @libheif\/heif_metadata.h 36:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_deflate :: Heif_metadata_compression
+pattern Heif_metadata_compression_deflate = Heif_metadata_compression 3
+
+{-| __C declaration:__ @heif_metadata_compression_zlib@
+
+    __defined at:__ @libheif\/heif_metadata.h 37:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_zlib :: Heif_metadata_compression
+pattern Heif_metadata_compression_zlib = Heif_metadata_compression 4
+
+{-| __C declaration:__ @heif_metadata_compression_brotli@
+
+    __defined at:__ @libheif\/heif_metadata.h 38:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_brotli :: Heif_metadata_compression
+pattern Heif_metadata_compression_brotli = Heif_metadata_compression 5
+
+{-| __C declaration:__ @struct heif_encoder@
+
+    __defined at:__ @libheif\/heif_aux_images.h 32:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder
+
+{-| __C declaration:__ @enum heif_depth_representation_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_depth_representation_type = Heif_depth_representation_type
+  { unwrapHeif_depth_representation_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_depth_representation_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_depth_representation_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_depth_representation_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_depth_representation_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_depth_representation_type unwrapHeif_depth_representation_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_depth_representation_type2
+
+deriving via Marshal.EquivStorable Heif_depth_representation_type instance BG.Storable Heif_depth_representation_type
+
+deriving via BG.CUInt instance BG.Prim Heif_depth_representation_type
+
+instance CEnum.CEnum Heif_depth_representation_type where
+
+  type CEnumZ Heif_depth_representation_type = BG.CUInt
+
+  toCEnum = Heif_depth_representation_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_depth_representation_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_depth_representation_type_uniform_inverse_Z")
+                                   , (1, BG.singleton "Heif_depth_representation_type_uniform_disparity")
+                                   , (2, BG.singleton "Heif_depth_representation_type_uniform_Z")
+                                   , (3, BG.singleton "Heif_depth_representation_type_nonuniform_disparity")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_depth_representation_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_depth_representation_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_depth_representation_type where
+
+  minDeclaredValue =
+    Heif_depth_representation_type_uniform_inverse_Z
+
+  maxDeclaredValue =
+    Heif_depth_representation_type_nonuniform_disparity
+
+instance Show Heif_depth_representation_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_depth_representation_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_depth_representation_type" Heif_depth_representation_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_type {unwrapHeif_depth_representation_type = y1}
+      , BG.getField @"unwrapHeif_depth_representation_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_depth_representation_type" (BG.Ptr Heif_depth_representation_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_depth_representation_type")
+
+instance HasCField.HasCField Heif_depth_representation_type "unwrapHeif_depth_representation_type" where
+
+  type CFieldType Heif_depth_representation_type "unwrapHeif_depth_representation_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_depth_representation_type_uniform_inverse_Z@
+
+    __defined at:__ @libheif\/heif_aux_images.h 55:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_uniform_inverse_Z :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_uniform_inverse_Z = Heif_depth_representation_type 0
+
+{-| __C declaration:__ @heif_depth_representation_type_uniform_disparity@
+
+    __defined at:__ @libheif\/heif_aux_images.h 56:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_uniform_disparity :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_uniform_disparity = Heif_depth_representation_type 1
+
+{-| __C declaration:__ @heif_depth_representation_type_uniform_Z@
+
+    __defined at:__ @libheif\/heif_aux_images.h 57:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_uniform_Z :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_uniform_Z = Heif_depth_representation_type 2
+
+{-| __C declaration:__ @heif_depth_representation_type_nonuniform_disparity@
+
+    __defined at:__ @libheif\/heif_aux_images.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_nonuniform_disparity :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_nonuniform_disparity = Heif_depth_representation_type 3
+
+{-| __C declaration:__ @struct heif_depth_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 61:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_depth_representation_info = Heif_depth_representation_info
+  { heif_depth_representation_info_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_aux_images.h 62:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_z_near :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_z_near@
+
+         __defined at:__ @libheif\/heif_aux_images.h 66:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_z_far :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_z_far@
+
+         __defined at:__ @libheif\/heif_aux_images.h 67:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_d_min :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_d_min@
+
+         __defined at:__ @libheif\/heif_aux_images.h 68:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_d_max :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_d_max@
+
+         __defined at:__ @libheif\/heif_aux_images.h 69:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_z_near :: BG.CDouble
+    {- ^ __C declaration:__ @z_near@
+
+         __defined at:__ @libheif\/heif_aux_images.h 71:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_z_far :: BG.CDouble
+    {- ^ __C declaration:__ @z_far@
+
+         __defined at:__ @libheif\/heif_aux_images.h 72:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_d_min :: BG.CDouble
+    {- ^ __C declaration:__ @d_min@
+
+         __defined at:__ @libheif\/heif_aux_images.h 73:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_d_max :: BG.CDouble
+    {- ^ __C declaration:__ @d_max@
+
+         __defined at:__ @libheif\/heif_aux_images.h 74:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_depth_representation_type :: Heif_depth_representation_type
+    {- ^ __C declaration:__ @depth_representation_type@
+
+         __defined at:__ @libheif\/heif_aux_images.h 76:39@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_disparity_reference_view :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @disparity_reference_view@
+
+         __defined at:__ @libheif\/heif_aux_images.h 77:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_depth_nonlinear_representation_model_size :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @depth_nonlinear_representation_model_size@
+
+         __defined at:__ @libheif\/heif_aux_images.h 79:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_depth_nonlinear_representation_model :: BG.Ptr HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @depth_nonlinear_representation_model@
+
+         __defined at:__ @libheif\/heif_aux_images.h 80:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_depth_representation_info where
+
+  staticSizeOf = \_ -> (64 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_depth_representation_info where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_depth_representation_info
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_z_near") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_z_far") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_d_min") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_d_max") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_z_near") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_z_far") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_d_min") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_d_max") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_depth_representation_type") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_disparity_reference_view") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model") ptr0
+
+instance Marshal.WriteRaw Heif_depth_representation_info where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_depth_representation_info
+            heif_depth_representation_info_version2
+            heif_depth_representation_info_has_z_near3
+            heif_depth_representation_info_has_z_far4
+            heif_depth_representation_info_has_d_min5
+            heif_depth_representation_info_has_d_max6
+            heif_depth_representation_info_z_near7
+            heif_depth_representation_info_z_far8
+            heif_depth_representation_info_d_min9
+            heif_depth_representation_info_d_max10
+            heif_depth_representation_info_depth_representation_type11
+            heif_depth_representation_info_disparity_reference_view12
+            heif_depth_representation_info_depth_nonlinear_representation_model_size13
+            heif_depth_representation_info_depth_nonlinear_representation_model14 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_version") ptr0 heif_depth_representation_info_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_z_near") ptr0 heif_depth_representation_info_has_z_near3
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_z_far") ptr0 heif_depth_representation_info_has_z_far4
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_d_min") ptr0 heif_depth_representation_info_has_d_min5
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_d_max") ptr0 heif_depth_representation_info_has_d_max6
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_z_near") ptr0 heif_depth_representation_info_z_near7
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_z_far") ptr0 heif_depth_representation_info_z_far8
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_d_min") ptr0 heif_depth_representation_info_d_min9
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_d_max") ptr0 heif_depth_representation_info_d_max10
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_depth_representation_type") ptr0 heif_depth_representation_info_depth_representation_type11
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_disparity_reference_view") ptr0 heif_depth_representation_info_disparity_reference_view12
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model_size") ptr0 heif_depth_representation_info_depth_nonlinear_representation_model_size13
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model") ptr0 heif_depth_representation_info_depth_nonlinear_representation_model14
+
+deriving via Marshal.EquivStorable Heif_depth_representation_info instance BG.Storable Heif_depth_representation_info
+
+deriving via Struct.IsStructViaReadRaw Heif_depth_representation_info instance Struct.IsStruct Heif_depth_representation_info
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_aux_images.h 62:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_version" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_version = y1
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_version" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_version")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_version" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @has_z_near@
+
+    __defined at:__ @libheif\/heif_aux_images.h 66:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_z_near" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_z_near = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_z_near" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_z_near" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_z_near")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_z_near" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_z_near" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 1
+
+{-| __C declaration:__ @has_z_far@
+
+    __defined at:__ @libheif\/heif_aux_images.h 67:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_z_far" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_z_far = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_z_far" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_z_far" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_z_far")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_z_far" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_z_far" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 2
+
+{-| __C declaration:__ @has_d_min@
+
+    __defined at:__ @libheif\/heif_aux_images.h 68:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_d_min" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_d_min = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_d_min" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_d_min" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_d_min")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_d_min" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_d_min" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 3
+
+{-| __C declaration:__ @has_d_max@
+
+    __defined at:__ @libheif\/heif_aux_images.h 69:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_d_max" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_d_max = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_d_max" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_d_max" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_d_max")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_d_max" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_d_max" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @z_near@
+
+    __defined at:__ @libheif\/heif_aux_images.h 71:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_z_near" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_z_near = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_z_near" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_z_near" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_z_near")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_z_near" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_z_near" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @z_far@
+
+    __defined at:__ @libheif\/heif_aux_images.h 72:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_z_far" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_z_far = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_z_far" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_z_far" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_z_far")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_z_far" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_z_far" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @d_min@
+
+    __defined at:__ @libheif\/heif_aux_images.h 73:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_d_min" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_d_min = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_d_min" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_d_min" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_d_min")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_d_min" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_d_min" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @d_max@
+
+    __defined at:__ @libheif\/heif_aux_images.h 74:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_d_max" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_d_max = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_d_max" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_d_max" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_d_max")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_d_max" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_d_max" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @depth_representation_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 76:39@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_depth_representation_type
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_depth_representation_type" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_depth_representation_type = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+      )
+
+instance ( ty ~ Heif_depth_representation_type
+         ) => BG.HasField "heif_depth_representation_info_depth_representation_type" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_depth_representation_type")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_depth_representation_type" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_depth_representation_type" =
+    Heif_depth_representation_type
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @disparity_reference_view@
+
+    __defined at:__ @libheif\/heif_aux_images.h 77:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_disparity_reference_view" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_disparity_reference_view = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_depth_representation_info_disparity_reference_view" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_disparity_reference_view")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_disparity_reference_view" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_disparity_reference_view" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 44
+
+{-| __C declaration:__ @depth_nonlinear_representation_model_size@
+
+    __defined at:__ @libheif\/heif_aux_images.h 79:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_depth_nonlinear_representation_model_size" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_depth_nonlinear_representation_model_size = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_depth_representation_info_depth_nonlinear_representation_model_size" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model_size")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model_size" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model_size" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @depth_nonlinear_representation_model@
+
+    __defined at:__ @libheif\/heif_aux_images.h 80:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_depth_nonlinear_representation_model" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_depth_nonlinear_representation_model = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+      )
+
+instance ( ty ~ BG.Ptr HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_depth_nonlinear_representation_model" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model" =
+    BG.Ptr HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 56
+
+{-| __C declaration:__ @macro LIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA@
+
+    __defined at:__ @libheif\/heif_aux_images.h 143:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA :: BG.CULong
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA =
+  (C.Expr.HostPlatform.<<) (1 :: BG.CULong) (1 :: BG.CInt)
+
+{-| __C declaration:__ @macro LIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH@
+
+    __defined at:__ @libheif\/heif_aux_images.h 144:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH :: BG.CULong
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH =
+  (C.Expr.HostPlatform.<<) (2 :: BG.CULong) (1 :: BG.CInt)
+
+{-| __C declaration:__ @heif_entity_group_id@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 33:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_entity_group_id = Heif_entity_group_id
+  { unwrapHeif_entity_group_id :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_entity_group_id" Heif_entity_group_id ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group_id {unwrapHeif_entity_group_id = y1}
+      , BG.getField @"unwrapHeif_entity_group_id" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_entity_group_id" (BG.Ptr Heif_entity_group_id) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_entity_group_id")
+
+instance HasCField.HasCField Heif_entity_group_id "unwrapHeif_entity_group_id" where
+
+  type CFieldType Heif_entity_group_id "unwrapHeif_entity_group_id" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @struct heif_entity_group@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 35:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_entity_group = Heif_entity_group
+  { heif_entity_group_entity_group_id :: Heif_entity_group_id
+    {- ^ __C declaration:__ @entity_group_id@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 37:24@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_entity_group_entity_group_type :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @entity_group_type@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 38:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_entity_group_entities :: BG.Ptr Heif_item_id
+    {- ^ __C declaration:__ @entities@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 39:17@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_entity_group_num_entities :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @num_entities@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 40:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_entity_group where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_entity_group where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_entity_group
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_entity_group_id") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_entity_group_type") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_entities") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_num_entities") ptr0
+
+instance Marshal.WriteRaw Heif_entity_group where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_entity_group
+            heif_entity_group_entity_group_id2
+            heif_entity_group_entity_group_type3
+            heif_entity_group_entities4
+            heif_entity_group_num_entities5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_entity_group_entity_group_id") ptr0 heif_entity_group_entity_group_id2
+              >> HasCField.writeRaw (BG.Proxy @"heif_entity_group_entity_group_type") ptr0 heif_entity_group_entity_group_type3
+              >> HasCField.writeRaw (BG.Proxy @"heif_entity_group_entities") ptr0 heif_entity_group_entities4
+              >> HasCField.writeRaw (BG.Proxy @"heif_entity_group_num_entities") ptr0 heif_entity_group_num_entities5
+
+deriving via Marshal.EquivStorable Heif_entity_group instance BG.Storable Heif_entity_group
+
+deriving via Struct.IsStructViaReadRaw Heif_entity_group instance Struct.IsStruct Heif_entity_group
+
+{-| __C declaration:__ @entity_group_id@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 37:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_entity_group_id
+         ) => BG.CompatHasField.HasField "heif_entity_group_entity_group_id" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_entity_group_id = y1
+                            , heif_entity_group_entity_group_type = BG.getField @"heif_entity_group_entity_group_type" x0
+                            , heif_entity_group_entities = BG.getField @"heif_entity_group_entities" x0
+                            , heif_entity_group_num_entities = BG.getField @"heif_entity_group_num_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_entity_group_id" x0
+      )
+
+instance ( ty ~ Heif_entity_group_id
+         ) => BG.HasField "heif_entity_group_entity_group_id" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_entity_group_id")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_entity_group_id" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_entity_group_id" =
+    Heif_entity_group_id
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @entity_group_type@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 38:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_entity_group_entity_group_type" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_entity_group_type = y1
+                            , heif_entity_group_entity_group_id = BG.getField @"heif_entity_group_entity_group_id" x0
+                            , heif_entity_group_entities = BG.getField @"heif_entity_group_entities" x0
+                            , heif_entity_group_num_entities = BG.getField @"heif_entity_group_num_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_entity_group_type" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_entity_group_entity_group_type" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_entity_group_type")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_entity_group_type" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_entity_group_type" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @entities@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 39:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_item_id
+         ) => BG.CompatHasField.HasField "heif_entity_group_entities" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_entities = y1
+                            , heif_entity_group_entity_group_id = BG.getField @"heif_entity_group_entity_group_id" x0
+                            , heif_entity_group_entity_group_type = BG.getField @"heif_entity_group_entity_group_type" x0
+                            , heif_entity_group_num_entities = BG.getField @"heif_entity_group_num_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_entities" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_item_id
+         ) => BG.HasField "heif_entity_group_entities" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_entities")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_entities" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_entities" =
+    BG.Ptr Heif_item_id
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @num_entities@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 40:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_entity_group_num_entities" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_num_entities = y1
+                            , heif_entity_group_entity_group_id = BG.getField @"heif_entity_group_entity_group_id" x0
+                            , heif_entity_group_entity_group_type = BG.getField @"heif_entity_group_entity_group_type" x0
+                            , heif_entity_group_entities = BG.getField @"heif_entity_group_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_num_entities" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_entity_group_num_entities" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_num_entities")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_num_entities" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_num_entities" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @struct heif_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 37:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_security_limits = Heif_security_limits
+  { heif_security_limits_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_security.h 39:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_image_size_pixels :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_image_size_pixels@
+
+         __defined at:__ @libheif\/heif_security.h 46:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_number_of_tiles :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_number_of_tiles@
+
+         __defined at:__ @libheif\/heif_security.h 47:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_bayer_pattern_pixels :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_bayer_pattern_pixels@
+
+         __defined at:__ @libheif\/heif_security.h 49:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_items :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_items@
+
+         __defined at:__ @libheif\/heif_security.h 50:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_color_profile_size :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_color_profile_size@
+
+         __defined at:__ @libheif\/heif_security.h 52:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_memory_block_size :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_memory_block_size@
+
+         __defined at:__ @libheif\/heif_security.h 53:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_components :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_components@
+
+         __defined at:__ @libheif\/heif_security.h 55:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_iloc_extents_per_item :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_iloc_extents_per_item@
+
+         __defined at:__ @libheif\/heif_security.h 57:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_size_entity_group :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_size_entity_group@
+
+         __defined at:__ @libheif\/heif_security.h 58:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_children_per_box :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_children_per_box@
+
+         __defined at:__ @libheif\/heif_security.h 60:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_total_memory :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_total_memory@
+
+         __defined at:__ @libheif\/heif_security.h 64:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_sample_description_box_entries :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_sample_description_box_entries@
+
+         __defined at:__ @libheif\/heif_security.h 65:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_sample_group_description_box_entries :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_sample_group_description_box_entries@
+
+         __defined at:__ @libheif\/heif_security.h 66:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_sequence_frames :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_sequence_frames@
+
+         __defined at:__ @libheif\/heif_security.h 70:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_number_of_file_brands :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_number_of_file_brands@
+
+         __defined at:__ @libheif\/heif_security.h 71:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_bad_pixels :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_bad_pixels@
+
+         __defined at:__ @libheif\/heif_security.h 75:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_iso23001_17_pixel_size_bytes :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_iso23001_17_pixel_size_bytes@
+
+         __defined at:__ @libheif\/heif_security.h 80:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_parent :: PtrConst.PtrConst Heif_security_limits
+    {- ^ __C declaration:__ @parent@
+
+         __defined at:__ @libheif\/heif_security.h 87:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_security_limits where
+
+  staticSizeOf = \_ -> (104 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_security_limits where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_security_limits
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_image_size_pixels") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_number_of_tiles") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_bayer_pattern_pixels") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_items") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_color_profile_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_memory_block_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_components") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_iloc_extents_per_item") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_size_entity_group") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_children_per_box") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_total_memory") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_sample_description_box_entries") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_sample_group_description_box_entries") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_sequence_frames") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_number_of_file_brands") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_bad_pixels") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_iso23001_17_pixel_size_bytes") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_parent") ptr0
+
+instance Marshal.WriteRaw Heif_security_limits where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_security_limits
+            heif_security_limits_version2
+            heif_security_limits_max_image_size_pixels3
+            heif_security_limits_max_number_of_tiles4
+            heif_security_limits_max_bayer_pattern_pixels5
+            heif_security_limits_max_items6
+            heif_security_limits_max_color_profile_size7
+            heif_security_limits_max_memory_block_size8
+            heif_security_limits_max_components9
+            heif_security_limits_max_iloc_extents_per_item10
+            heif_security_limits_max_size_entity_group11
+            heif_security_limits_max_children_per_box12
+            heif_security_limits_max_total_memory13
+            heif_security_limits_max_sample_description_box_entries14
+            heif_security_limits_max_sample_group_description_box_entries15
+            heif_security_limits_max_sequence_frames16
+            heif_security_limits_max_number_of_file_brands17
+            heif_security_limits_max_bad_pixels18
+            heif_security_limits_max_iso23001_17_pixel_size_bytes19
+            heif_security_limits_parent20 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_security_limits_version") ptr0 heif_security_limits_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_image_size_pixels") ptr0 heif_security_limits_max_image_size_pixels3
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_number_of_tiles") ptr0 heif_security_limits_max_number_of_tiles4
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_bayer_pattern_pixels") ptr0 heif_security_limits_max_bayer_pattern_pixels5
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_items") ptr0 heif_security_limits_max_items6
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_color_profile_size") ptr0 heif_security_limits_max_color_profile_size7
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_memory_block_size") ptr0 heif_security_limits_max_memory_block_size8
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_components") ptr0 heif_security_limits_max_components9
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_iloc_extents_per_item") ptr0 heif_security_limits_max_iloc_extents_per_item10
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_size_entity_group") ptr0 heif_security_limits_max_size_entity_group11
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_children_per_box") ptr0 heif_security_limits_max_children_per_box12
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_total_memory") ptr0 heif_security_limits_max_total_memory13
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_sample_description_box_entries") ptr0 heif_security_limits_max_sample_description_box_entries14
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_sample_group_description_box_entries") ptr0 heif_security_limits_max_sample_group_description_box_entries15
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_sequence_frames") ptr0 heif_security_limits_max_sequence_frames16
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_number_of_file_brands") ptr0 heif_security_limits_max_number_of_file_brands17
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_bad_pixels") ptr0 heif_security_limits_max_bad_pixels18
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_iso23001_17_pixel_size_bytes") ptr0 heif_security_limits_max_iso23001_17_pixel_size_bytes19
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_parent") ptr0 heif_security_limits_parent20
+
+deriving via Marshal.EquivStorable Heif_security_limits instance BG.Storable Heif_security_limits
+
+deriving via Struct.IsStructViaReadRaw Heif_security_limits instance Struct.IsStruct Heif_security_limits
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_security.h 39:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_security_limits_version" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_version = y1
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_security_limits_version" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_version")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_version" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @max_image_size_pixels@
+
+    __defined at:__ @libheif\/heif_security.h 46:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_image_size_pixels" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_image_size_pixels = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_image_size_pixels" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_image_size_pixels" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_image_size_pixels")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_image_size_pixels" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_image_size_pixels" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @max_number_of_tiles@
+
+    __defined at:__ @libheif\/heif_security.h 47:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_number_of_tiles" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_number_of_tiles = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_number_of_tiles" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_number_of_tiles" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_number_of_tiles")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_number_of_tiles" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_number_of_tiles" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @max_bayer_pattern_pixels@
+
+    __defined at:__ @libheif\/heif_security.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_bayer_pattern_pixels" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_bayer_pattern_pixels = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_bayer_pattern_pixels" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_bayer_pattern_pixels")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_bayer_pattern_pixels" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_bayer_pattern_pixels" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @max_items@
+
+    __defined at:__ @libheif\/heif_security.h 50:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_items" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_items = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_items" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_items" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_items")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_items" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_items" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @max_color_profile_size@
+
+    __defined at:__ @libheif\/heif_security.h 52:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_color_profile_size" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_color_profile_size = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_color_profile_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_color_profile_size" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_color_profile_size")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_color_profile_size" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_color_profile_size" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @max_memory_block_size@
+
+    __defined at:__ @libheif\/heif_security.h 53:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_memory_block_size" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_memory_block_size = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_memory_block_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_memory_block_size" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_memory_block_size")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_memory_block_size" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_memory_block_size" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @max_components@
+
+    __defined at:__ @libheif\/heif_security.h 55:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_components" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_components = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_components" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_components" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_components")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_components" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_components" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @max_iloc_extents_per_item@
+
+    __defined at:__ @libheif\/heif_security.h 57:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_iloc_extents_per_item" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_iloc_extents_per_item = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_iloc_extents_per_item" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_iloc_extents_per_item")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_iloc_extents_per_item" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_iloc_extents_per_item" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 52
+
+{-| __C declaration:__ @max_size_entity_group@
+
+    __defined at:__ @libheif\/heif_security.h 58:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_size_entity_group" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_size_entity_group = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_size_entity_group" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_size_entity_group" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_size_entity_group")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_size_entity_group" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_size_entity_group" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 56
+
+{-| __C declaration:__ @max_children_per_box@
+
+    __defined at:__ @libheif\/heif_security.h 60:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_children_per_box" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_children_per_box = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_children_per_box" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_children_per_box" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_children_per_box")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_children_per_box" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_children_per_box" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 60
+
+{-| __C declaration:__ @max_total_memory@
+
+    __defined at:__ @libheif\/heif_security.h 64:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_total_memory" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_total_memory = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_total_memory" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_total_memory" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_total_memory")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_total_memory" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_total_memory" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 64
+
+{-| __C declaration:__ @max_sample_description_box_entries@
+
+    __defined at:__ @libheif\/heif_security.h 65:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_sample_description_box_entries" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_sample_description_box_entries = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_sample_description_box_entries" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_sample_description_box_entries")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_sample_description_box_entries" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_sample_description_box_entries" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 72
+
+{-| __C declaration:__ @max_sample_group_description_box_entries@
+
+    __defined at:__ @libheif\/heif_security.h 66:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_sample_group_description_box_entries" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_sample_group_description_box_entries = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_sample_group_description_box_entries" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_sample_group_description_box_entries")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_sample_group_description_box_entries" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_sample_group_description_box_entries" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 76
+
+{-| __C declaration:__ @max_sequence_frames@
+
+    __defined at:__ @libheif\/heif_security.h 70:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_sequence_frames" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_sequence_frames = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_sequence_frames" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_sequence_frames" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_sequence_frames")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_sequence_frames" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_sequence_frames" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 80
+
+{-| __C declaration:__ @max_number_of_file_brands@
+
+    __defined at:__ @libheif\/heif_security.h 71:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_number_of_file_brands" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_number_of_file_brands = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_number_of_file_brands" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_number_of_file_brands")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_number_of_file_brands" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_number_of_file_brands" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 84
+
+{-| __C declaration:__ @max_bad_pixels@
+
+    __defined at:__ @libheif\/heif_security.h 75:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_bad_pixels" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_bad_pixels = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_bad_pixels" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_bad_pixels" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_bad_pixels")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_bad_pixels" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_bad_pixels" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 88
+
+{-| __C declaration:__ @max_iso23001_17_pixel_size_bytes@
+
+    __defined at:__ @libheif\/heif_security.h 80:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_iso23001_17_pixel_size_bytes" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_iso23001_17_pixel_size_bytes = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_iso23001_17_pixel_size_bytes" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_iso23001_17_pixel_size_bytes")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_iso23001_17_pixel_size_bytes" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_iso23001_17_pixel_size_bytes" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 92
+
+{-| __C declaration:__ @parent@
+
+    __defined at:__ @libheif\/heif_security.h 87:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst Heif_security_limits
+         ) => BG.CompatHasField.HasField "heif_security_limits_parent" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_parent = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               }
+      , BG.getField @"heif_security_limits_parent" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst Heif_security_limits
+         ) => BG.HasField "heif_security_limits_parent" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_parent")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_parent" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_parent" =
+    PtrConst.PtrConst Heif_security_limits
+
+  offset# = \_ -> \_ -> 96
+
+{-| __C declaration:__ @enum heif_compression_format@
+
+    __defined at:__ @libheif\/heif_context.h 38:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_compression_format = Heif_compression_format
+  { unwrapHeif_compression_format :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_compression_format where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_compression_format where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_compression_format
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_compression_format where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_compression_format unwrapHeif_compression_format2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_compression_format2
+
+deriving via Marshal.EquivStorable Heif_compression_format instance BG.Storable Heif_compression_format
+
+deriving via BG.CUInt instance BG.Prim Heif_compression_format
+
+instance CEnum.CEnum Heif_compression_format where
+
+  type CEnumZ Heif_compression_format = BG.CUInt
+
+  toCEnum = Heif_compression_format
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_compression_format"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_compression_undefined")
+                                   , (1, BG.singleton "Heif_compression_HEVC")
+                                   , (2, BG.singleton "Heif_compression_AVC")
+                                   , (3, BG.singleton "Heif_compression_JPEG")
+                                   , (4, BG.singleton "Heif_compression_AV1")
+                                   , (5, BG.singleton "Heif_compression_VVC")
+                                   , (6, BG.singleton "Heif_compression_EVC")
+                                   , (7, BG.singleton "Heif_compression_JPEG2000")
+                                   , (8, BG.singleton "Heif_compression_uncompressed")
+                                   , (9, BG.singleton "Heif_compression_mask")
+                                   , (10, BG.singleton "Heif_compression_HTJ2K")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_compression_format"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_compression_format"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_compression_format where
+
+  minDeclaredValue = Heif_compression_undefined
+
+  maxDeclaredValue = Heif_compression_HTJ2K
+
+instance Show Heif_compression_format where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_compression_format where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_compression_format" Heif_compression_format ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_compression_format {unwrapHeif_compression_format = y1}
+      , BG.getField @"unwrapHeif_compression_format" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_compression_format" (BG.Ptr Heif_compression_format) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_compression_format")
+
+instance HasCField.HasCField Heif_compression_format "unwrapHeif_compression_format" where
+
+  type CFieldType Heif_compression_format "unwrapHeif_compression_format" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_compression_undefined@
+
+    __defined at:__ @libheif\/heif_context.h 46:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_undefined :: Heif_compression_format
+pattern Heif_compression_undefined = Heif_compression_format 0
+
+{-| __C declaration:__ @heif_compression_HEVC@
+
+    __defined at:__ @libheif\/heif_context.h 52:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_HEVC :: Heif_compression_format
+pattern Heif_compression_HEVC = Heif_compression_format 1
+
+{-| __C declaration:__ @heif_compression_AVC@
+
+    __defined at:__ @libheif\/heif_context.h 60:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_AVC :: Heif_compression_format
+pattern Heif_compression_AVC = Heif_compression_format 2
+
+{-| __C declaration:__ @heif_compression_JPEG@
+
+    __defined at:__ @libheif\/heif_context.h 67:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_JPEG :: Heif_compression_format
+pattern Heif_compression_JPEG = Heif_compression_format 3
+
+{-| __C declaration:__ @heif_compression_AV1@
+
+    __defined at:__ @libheif\/heif_context.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_AV1 :: Heif_compression_format
+pattern Heif_compression_AV1 = Heif_compression_format 4
+
+{-| __C declaration:__ @heif_compression_VVC@
+
+    __defined at:__ @libheif\/heif_context.h 83:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_VVC :: Heif_compression_format
+pattern Heif_compression_VVC = Heif_compression_format 5
+
+{-| __C declaration:__ @heif_compression_EVC@
+
+    __defined at:__ @libheif\/heif_context.h 91:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_EVC :: Heif_compression_format
+pattern Heif_compression_EVC = Heif_compression_format 6
+
+{-| __C declaration:__ @heif_compression_JPEG2000@
+
+    __defined at:__ @libheif\/heif_context.h 98:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_JPEG2000 :: Heif_compression_format
+pattern Heif_compression_JPEG2000 = Heif_compression_format 7
+
+{-| __C declaration:__ @heif_compression_uncompressed@
+
+    __defined at:__ @libheif\/heif_context.h 104:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_uncompressed :: Heif_compression_format
+pattern Heif_compression_uncompressed = Heif_compression_format 8
+
+{-| __C declaration:__ @heif_compression_mask@
+
+    __defined at:__ @libheif\/heif_context.h 110:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_mask :: Heif_compression_format
+pattern Heif_compression_mask = Heif_compression_format 9
+
+{-| __C declaration:__ @heif_compression_HTJ2K@
+
+    __defined at:__ @libheif\/heif_context.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_HTJ2K :: Heif_compression_format
+pattern Heif_compression_HTJ2K = Heif_compression_format 10
+
+{-| __C declaration:__ @struct heif_reading_options@
+
+    __defined at:__ @libheif\/heif_context.h 137:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_reading_options
+
+{-| __C declaration:__ @enum heif_reader_grow_status@
+
+    __defined at:__ @libheif\/heif_context.h 139:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_reader_grow_status = Heif_reader_grow_status
+  { unwrapHeif_reader_grow_status :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_reader_grow_status where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_reader_grow_status where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_reader_grow_status
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_reader_grow_status where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_reader_grow_status unwrapHeif_reader_grow_status2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_reader_grow_status2
+
+deriving via Marshal.EquivStorable Heif_reader_grow_status instance BG.Storable Heif_reader_grow_status
+
+deriving via BG.CUInt instance BG.Prim Heif_reader_grow_status
+
+instance CEnum.CEnum Heif_reader_grow_status where
+
+  type CEnumZ Heif_reader_grow_status = BG.CUInt
+
+  toCEnum = Heif_reader_grow_status
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_reader_grow_status"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_reader_grow_status_size_reached")
+                                   , (1, BG.singleton "Heif_reader_grow_status_timeout")
+                                   , (2, BG.singleton "Heif_reader_grow_status_size_beyond_eof")
+                                   , (3, BG.singleton "Heif_reader_grow_status_error")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_reader_grow_status"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_reader_grow_status"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_reader_grow_status where
+
+  minDeclaredValue =
+    Heif_reader_grow_status_size_reached
+
+  maxDeclaredValue = Heif_reader_grow_status_error
+
+instance Show Heif_reader_grow_status where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_reader_grow_status where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_reader_grow_status" Heif_reader_grow_status ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_grow_status {unwrapHeif_reader_grow_status = y1}
+      , BG.getField @"unwrapHeif_reader_grow_status" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_reader_grow_status" (BG.Ptr Heif_reader_grow_status) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_reader_grow_status")
+
+instance HasCField.HasCField Heif_reader_grow_status "unwrapHeif_reader_grow_status" where
+
+  type CFieldType Heif_reader_grow_status "unwrapHeif_reader_grow_status" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_reader_grow_status_size_reached@
+
+    __defined at:__ @libheif\/heif_context.h 141:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_size_reached :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_size_reached = Heif_reader_grow_status 0
+
+{-| __C declaration:__ @heif_reader_grow_status_timeout@
+
+    __defined at:__ @libheif\/heif_context.h 142:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_timeout :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_timeout = Heif_reader_grow_status 1
+
+{-| __C declaration:__ @heif_reader_grow_status_size_beyond_eof@
+
+    __defined at:__ @libheif\/heif_context.h 143:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_size_beyond_eof :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_size_beyond_eof = Heif_reader_grow_status 2
+
+{-| __C declaration:__ @heif_reader_grow_status_error@
+
+    __defined at:__ @libheif\/heif_context.h 144:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_error :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_error = Heif_reader_grow_status 3
+
+{-| __C declaration:__ @struct heif_reader_range_request_result@
+
+    __defined at:__ @libheif\/heif_context.h 148:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_reader_range_request_result = Heif_reader_range_request_result
+  { heif_reader_range_request_result_status :: Heif_reader_grow_status
+    {- ^ __C declaration:__ @status@
+
+         __defined at:__ @libheif\/heif_context.h 150:32@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_range_request_result_range_end :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @range_end@
+
+         __defined at:__ @libheif\/heif_context.h 156:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_range_request_result_reader_error_code :: BG.CInt
+    {- ^ __C declaration:__ @reader_error_code@
+
+         __defined at:__ @libheif\/heif_context.h 159:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_range_request_result_reader_error_msg :: PtrConst.PtrConst BG.CChar
+    {- ^ __C declaration:__ @reader_error_msg@
+
+         __defined at:__ @libheif\/heif_context.h 160:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_reader_range_request_result where
+
+  staticSizeOf = \_ -> (32 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_reader_range_request_result where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_reader_range_request_result
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_status") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_range_end") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_code") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_msg") ptr0
+
+instance Marshal.WriteRaw Heif_reader_range_request_result where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_reader_range_request_result
+            heif_reader_range_request_result_status2
+            heif_reader_range_request_result_range_end3
+            heif_reader_range_request_result_reader_error_code4
+            heif_reader_range_request_result_reader_error_msg5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_status") ptr0 heif_reader_range_request_result_status2
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_range_end") ptr0 heif_reader_range_request_result_range_end3
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_code") ptr0 heif_reader_range_request_result_reader_error_code4
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_msg") ptr0 heif_reader_range_request_result_reader_error_msg5
+
+deriving via Marshal.EquivStorable Heif_reader_range_request_result instance BG.Storable Heif_reader_range_request_result
+
+deriving via Struct.IsStructViaReadRaw Heif_reader_range_request_result instance Struct.IsStruct Heif_reader_range_request_result
+
+{-| __C declaration:__ @status@
+
+    __defined at:__ @libheif\/heif_context.h 150:32@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_reader_grow_status
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_status" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_status = y1
+                                           , heif_reader_range_request_result_range_end = BG.getField @"heif_reader_range_request_result_range_end" x0
+                                           , heif_reader_range_request_result_reader_error_code = BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+                                           , heif_reader_range_request_result_reader_error_msg = BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_status" x0
+      )
+
+instance ( ty ~ Heif_reader_grow_status
+         ) => BG.HasField "heif_reader_range_request_result_status" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_status")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_status" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_status" =
+    Heif_reader_grow_status
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @range_end@
+
+    __defined at:__ @libheif\/heif_context.h 156:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_range_end" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_range_end = y1
+                                           , heif_reader_range_request_result_status = BG.getField @"heif_reader_range_request_result_status" x0
+                                           , heif_reader_range_request_result_reader_error_code = BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+                                           , heif_reader_range_request_result_reader_error_msg = BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_range_end" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_reader_range_request_result_range_end" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_range_end")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_range_end" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_range_end" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @reader_error_code@
+
+    __defined at:__ @libheif\/heif_context.h 159:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_reader_error_code" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_reader_error_code = y1
+                                           , heif_reader_range_request_result_status = BG.getField @"heif_reader_range_request_result_status" x0
+                                           , heif_reader_range_request_result_range_end = BG.getField @"heif_reader_range_request_result_range_end" x0
+                                           , heif_reader_range_request_result_reader_error_msg = BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_reader_range_request_result_reader_error_code" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_reader_error_code")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_code" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_code" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @reader_error_msg@
+
+    __defined at:__ @libheif\/heif_context.h 160:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_reader_error_msg" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_reader_error_msg = y1
+                                           , heif_reader_range_request_result_status = BG.getField @"heif_reader_range_request_result_status" x0
+                                           , heif_reader_range_request_result_range_end = BG.getField @"heif_reader_range_request_result_range_end" x0
+                                           , heif_reader_range_request_result_reader_error_code = BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.HasField "heif_reader_range_request_result_reader_error_msg" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_reader_error_msg")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_msg" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_msg" =
+    PtrConst.PtrConst BG.CChar
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @struct heif_reader@
+
+    __defined at:__ @libheif\/heif_context.h 164:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_reader = Heif_reader
+  { heif_reader_reader_api_version :: BG.CInt
+    {- ^ __C declaration:__ @reader_api_version@
+
+         __defined at:__ @libheif\/heif_context.h 167:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_get_position :: BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+    {- ^ __C declaration:__ @get_position@
+
+         __defined at:__ @libheif\/heif_context.h 170:14@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_read :: BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+    {- ^ __C declaration:__ @read@
+
+         __defined at:__ @libheif\/heif_context.h 174:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_seek :: BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+    {- ^ __C declaration:__ @seek@
+
+         __defined at:__ @libheif\/heif_context.h 178:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_wait_for_file_size :: BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+    {- ^ __C declaration:__ @wait_for_file_size@
+
+         __defined at:__ @libheif\/heif_context.h 189:35@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_request_range :: BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+    {- ^ __C declaration:__ @request_range@
+
+         __defined at:__ @libheif\/heif_context.h 212:39@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_preload_range_hint :: BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @preload_range_hint@
+
+         __defined at:__ @libheif\/heif_context.h 219:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_release_file_range :: BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @release_file_range@
+
+         __defined at:__ @libheif\/heif_context.h 225:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_release_error_msg :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+    {- ^ __C declaration:__ @release_error_msg@
+
+         __defined at:__ @libheif\/heif_context.h 230:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_reader where
+
+  staticSizeOf = \_ -> (72 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_reader where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_reader
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_reader_api_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_get_position") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_read") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_seek") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_wait_for_file_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_request_range") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_preload_range_hint") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_release_file_range") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_release_error_msg") ptr0
+
+instance Marshal.WriteRaw Heif_reader where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_reader
+            heif_reader_reader_api_version2
+            heif_reader_get_position3
+            heif_reader_read4
+            heif_reader_seek5
+            heif_reader_wait_for_file_size6
+            heif_reader_request_range7
+            heif_reader_preload_range_hint8
+            heif_reader_release_file_range9
+            heif_reader_release_error_msg10 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_reader_reader_api_version") ptr0 heif_reader_reader_api_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_get_position") ptr0 heif_reader_get_position3
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_read") ptr0 heif_reader_read4
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_seek") ptr0 heif_reader_seek5
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_wait_for_file_size") ptr0 heif_reader_wait_for_file_size6
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_request_range") ptr0 heif_reader_request_range7
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_preload_range_hint") ptr0 heif_reader_preload_range_hint8
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_release_file_range") ptr0 heif_reader_release_file_range9
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_release_error_msg") ptr0 heif_reader_release_error_msg10
+
+deriving via Marshal.EquivStorable Heif_reader instance BG.Storable Heif_reader
+
+deriving via Struct.IsStructViaReadRaw Heif_reader instance Struct.IsStruct Heif_reader
+
+{-| __C declaration:__ @reader_api_version@
+
+    __defined at:__ @libheif\/heif_context.h 167:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_reader_reader_api_version" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_reader_api_version = y1
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_reader_api_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_reader_reader_api_version" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_reader_api_version")
+
+instance HasCField.HasCField Heif_reader "heif_reader_reader_api_version" where
+
+  type CFieldType Heif_reader "heif_reader_reader_api_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @get_position@
+
+    __defined at:__ @libheif\/heif_context.h 170:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+         ) => BG.CompatHasField.HasField "heif_reader_get_position" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_get_position = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_get_position" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+         ) => BG.HasField "heif_reader_get_position" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_get_position")
+
+instance HasCField.HasCField Heif_reader "heif_reader_get_position" where
+
+  type CFieldType Heif_reader "heif_reader_get_position" =
+    BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @read@
+
+    __defined at:__ @libheif\/heif_context.h 174:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.CompatHasField.HasField "heif_reader_read" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_read = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_read" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.HasField "heif_reader_read" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_read")
+
+instance HasCField.HasCField Heif_reader "heif_reader_read" where
+
+  type CFieldType Heif_reader "heif_reader_read" =
+    BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @seek@
+
+    __defined at:__ @libheif\/heif_context.h 178:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.CompatHasField.HasField "heif_reader_seek" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_seek = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_seek" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.HasField "heif_reader_seek" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_seek")
+
+instance HasCField.HasCField Heif_reader "heif_reader_seek" where
+
+  type CFieldType Heif_reader "heif_reader_seek" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @wait_for_file_size@
+
+    __defined at:__ @libheif\/heif_context.h 189:35@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+         ) => BG.CompatHasField.HasField "heif_reader_wait_for_file_size" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_wait_for_file_size = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_wait_for_file_size" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+         ) => BG.HasField "heif_reader_wait_for_file_size" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_wait_for_file_size")
+
+instance HasCField.HasCField Heif_reader "heif_reader_wait_for_file_size" where
+
+  type CFieldType Heif_reader "heif_reader_wait_for_file_size" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @request_range@
+
+    __defined at:__ @libheif\/heif_context.h 212:39@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+         ) => BG.CompatHasField.HasField "heif_reader_request_range" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_request_range = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_request_range" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+         ) => BG.HasField "heif_reader_request_range" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_request_range")
+
+instance HasCField.HasCField Heif_reader "heif_reader_request_range" where
+
+  type CFieldType Heif_reader "heif_reader_request_range" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @preload_range_hint@
+
+    __defined at:__ @libheif\/heif_context.h 219:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_reader_preload_range_hint" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_preload_range_hint = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_preload_range_hint" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_reader_preload_range_hint" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_preload_range_hint")
+
+instance HasCField.HasCField Heif_reader "heif_reader_preload_range_hint" where
+
+  type CFieldType Heif_reader "heif_reader_preload_range_hint" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @release_file_range@
+
+    __defined at:__ @libheif\/heif_context.h 225:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_reader_release_file_range" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_release_file_range = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_release_file_range" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_reader_release_file_range" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_release_file_range")
+
+instance HasCField.HasCField Heif_reader "heif_reader_release_file_range" where
+
+  type CFieldType Heif_reader "heif_reader_release_file_range" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 56
+
+{-| __C declaration:__ @release_error_msg@
+
+    __defined at:__ @libheif\/heif_context.h 230:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+         ) => BG.CompatHasField.HasField "heif_reader_release_error_msg" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_release_error_msg = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      }
+      , BG.getField @"heif_reader_release_error_msg" x0
+      )
+
+instance ( ty ~ BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+         ) => BG.HasField "heif_reader_release_error_msg" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_release_error_msg")
+
+instance HasCField.HasCField Heif_reader "heif_reader_release_error_msg" where
+
+  type CFieldType Heif_reader "heif_reader_release_error_msg" =
+    BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+
+  offset# = \_ -> \_ -> 64
+
+{-| __C declaration:__ @struct heif_writer@
+
+    __defined at:__ @libheif\/heif_context.h 319:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_writer = Heif_writer
+  { heif_writer_writer_api_version :: BG.CInt
+    {- ^ __C declaration:__ @writer_api_version@
+
+         __defined at:__ @libheif\/heif_context.h 322:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_writer_write :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+    {- ^ __C declaration:__ @write@
+
+         __defined at:__ @libheif\/heif_context.h 327:17@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_writer where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_writer where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_writer
+      <*> HasCField.readRaw (BG.Proxy @"heif_writer_writer_api_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_writer_write") ptr0
+
+instance Marshal.WriteRaw Heif_writer where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_writer heif_writer_writer_api_version2 heif_writer_write3 ->
+               HasCField.writeRaw (BG.Proxy @"heif_writer_writer_api_version") ptr0 heif_writer_writer_api_version2
+            >> HasCField.writeRaw (BG.Proxy @"heif_writer_write") ptr0 heif_writer_write3
+
+deriving via Marshal.EquivStorable Heif_writer instance BG.Storable Heif_writer
+
+deriving via Struct.IsStructViaReadRaw Heif_writer instance Struct.IsStruct Heif_writer
+
+{-| __C declaration:__ @writer_api_version@
+
+    __defined at:__ @libheif\/heif_context.h 322:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_writer_writer_api_version" Heif_writer ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_writer { heif_writer_writer_api_version = y1
+                      , heif_writer_write = BG.getField @"heif_writer_write" x0
+                      }
+      , BG.getField @"heif_writer_writer_api_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_writer_writer_api_version" (BG.Ptr Heif_writer) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_writer_writer_api_version")
+
+instance HasCField.HasCField Heif_writer "heif_writer_writer_api_version" where
+
+  type CFieldType Heif_writer "heif_writer_writer_api_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @write@
+
+    __defined at:__ @libheif\/heif_context.h 327:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+         ) => BG.CompatHasField.HasField "heif_writer_write" Heif_writer ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_writer { heif_writer_write = y1
+                      , heif_writer_writer_api_version = BG.getField @"heif_writer_writer_api_version" x0
+                      }
+      , BG.getField @"heif_writer_write" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+         ) => BG.HasField "heif_writer_write" (BG.Ptr Heif_writer) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_writer_write")
+
+instance HasCField.HasCField Heif_writer "heif_writer_write" where
+
+  type CFieldType Heif_writer "heif_writer_write" =
+    BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @struct heif_unci_image_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 40:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_unci_image_parameters
+
+{-| __C declaration:__ @struct heif_encoder_descriptor@
+
+    __defined at:__ @libheif\/heif_encoding.h 51:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder_descriptor
+
+{-| __C declaration:__ @struct heif_encoder_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 56:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder_parameter
+
+{-| __C declaration:__ @enum heif_encoder_parameter_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 154:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_encoder_parameter_type = Heif_encoder_parameter_type
+  { unwrapHeif_encoder_parameter_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_encoder_parameter_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_encoder_parameter_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_encoder_parameter_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_encoder_parameter_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_encoder_parameter_type unwrapHeif_encoder_parameter_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_encoder_parameter_type2
+
+deriving via Marshal.EquivStorable Heif_encoder_parameter_type instance BG.Storable Heif_encoder_parameter_type
+
+deriving via BG.CUInt instance BG.Prim Heif_encoder_parameter_type
+
+instance CEnum.CEnum Heif_encoder_parameter_type where
+
+  type CEnumZ Heif_encoder_parameter_type = BG.CUInt
+
+  toCEnum = Heif_encoder_parameter_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_encoder_parameter_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_encoder_parameter_type_integer")
+                                   , (2, BG.singleton "Heif_encoder_parameter_type_boolean")
+                                   , (3, BG.singleton "Heif_encoder_parameter_type_string")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_encoder_parameter_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_encoder_parameter_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_encoder_parameter_type where
+
+  minDeclaredValue =
+    Heif_encoder_parameter_type_integer
+
+  maxDeclaredValue = Heif_encoder_parameter_type_string
+
+instance Show Heif_encoder_parameter_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_encoder_parameter_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_encoder_parameter_type" Heif_encoder_parameter_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoder_parameter_type {unwrapHeif_encoder_parameter_type = y1}
+      , BG.getField @"unwrapHeif_encoder_parameter_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_encoder_parameter_type" (BG.Ptr Heif_encoder_parameter_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_encoder_parameter_type")
+
+instance HasCField.HasCField Heif_encoder_parameter_type "unwrapHeif_encoder_parameter_type" where
+
+  type CFieldType Heif_encoder_parameter_type "unwrapHeif_encoder_parameter_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_encoder_parameter_type_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 156:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_encoder_parameter_type_integer :: Heif_encoder_parameter_type
+pattern Heif_encoder_parameter_type_integer = Heif_encoder_parameter_type 1
+
+{-| __C declaration:__ @heif_encoder_parameter_type_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 157:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_encoder_parameter_type_boolean :: Heif_encoder_parameter_type
+pattern Heif_encoder_parameter_type_boolean = Heif_encoder_parameter_type 2
+
+{-| __C declaration:__ @heif_encoder_parameter_type_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_encoder_parameter_type_string :: Heif_encoder_parameter_type
+pattern Heif_encoder_parameter_type_string = Heif_encoder_parameter_type 3
+
+{-| __C declaration:__ @enum heif_orientation@
+
+    __defined at:__ @libheif\/heif_encoding.h 264:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_orientation = Heif_orientation
+  { unwrapHeif_orientation :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_orientation where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_orientation where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_orientation
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_orientation where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_orientation unwrapHeif_orientation2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_orientation2
+
+deriving via Marshal.EquivStorable Heif_orientation instance BG.Storable Heif_orientation
+
+deriving via BG.CUInt instance BG.Prim Heif_orientation
+
+instance CEnum.CEnum Heif_orientation where
+
+  type CEnumZ Heif_orientation = BG.CUInt
+
+  toCEnum = Heif_orientation
+
+  fromCEnum = BG.getField @"unwrapHeif_orientation"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_orientation_normal")
+                                   , (2, BG.singleton "Heif_orientation_flip_horizontally")
+                                   , (3, BG.singleton "Heif_orientation_rotate_180")
+                                   , (4, BG.singleton "Heif_orientation_flip_vertically")
+                                   , (5, BG.singleton "Heif_orientation_rotate_90_cw_then_flip_horizontally")
+                                   , (6, BG.singleton "Heif_orientation_rotate_90_cw")
+                                   , (7, BG.singleton "Heif_orientation_rotate_90_cw_then_flip_vertically")
+                                   , (8, BG.singleton "Heif_orientation_rotate_270_cw")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_orientation"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_orientation"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_orientation where
+
+  minDeclaredValue = Heif_orientation_normal
+
+  maxDeclaredValue = Heif_orientation_rotate_270_cw
+
+instance Show Heif_orientation where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_orientation where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_orientation" Heif_orientation ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_orientation {unwrapHeif_orientation = y1}
+      , BG.getField @"unwrapHeif_orientation" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_orientation" (BG.Ptr Heif_orientation) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_orientation")
+
+instance HasCField.HasCField Heif_orientation "unwrapHeif_orientation" where
+
+  type CFieldType Heif_orientation "unwrapHeif_orientation" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_orientation_normal@
+
+    __defined at:__ @libheif\/heif_encoding.h 266:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_normal :: Heif_orientation
+pattern Heif_orientation_normal = Heif_orientation 1
+
+{-| __C declaration:__ @heif_orientation_flip_horizontally@
+
+    __defined at:__ @libheif\/heif_encoding.h 267:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_flip_horizontally :: Heif_orientation
+pattern Heif_orientation_flip_horizontally = Heif_orientation 2
+
+{-| __C declaration:__ @heif_orientation_rotate_180@
+
+    __defined at:__ @libheif\/heif_encoding.h 268:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_180 :: Heif_orientation
+pattern Heif_orientation_rotate_180 = Heif_orientation 3
+
+{-| __C declaration:__ @heif_orientation_flip_vertically@
+
+    __defined at:__ @libheif\/heif_encoding.h 269:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_flip_vertically :: Heif_orientation
+pattern Heif_orientation_flip_vertically = Heif_orientation 4
+
+{-| __C declaration:__ @heif_orientation_rotate_90_cw_then_flip_horizontally@
+
+    __defined at:__ @libheif\/heif_encoding.h 270:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_90_cw_then_flip_horizontally :: Heif_orientation
+pattern Heif_orientation_rotate_90_cw_then_flip_horizontally = Heif_orientation 5
+
+{-| __C declaration:__ @heif_orientation_rotate_90_cw@
+
+    __defined at:__ @libheif\/heif_encoding.h 271:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_90_cw :: Heif_orientation
+pattern Heif_orientation_rotate_90_cw = Heif_orientation 6
+
+{-| __C declaration:__ @heif_orientation_rotate_90_cw_then_flip_vertically@
+
+    __defined at:__ @libheif\/heif_encoding.h 272:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_90_cw_then_flip_vertically :: Heif_orientation
+pattern Heif_orientation_rotate_90_cw_then_flip_vertically = Heif_orientation 7
+
+{-| __C declaration:__ @heif_orientation_rotate_270_cw@
+
+    __defined at:__ @libheif\/heif_encoding.h 273:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_270_cw :: Heif_orientation
+pattern Heif_orientation_rotate_270_cw = Heif_orientation 8
+
+{-| __C declaration:__ @struct heif_encoding_options@
+
+    __defined at:__ @libheif\/heif_encoding.h 281:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoding_options = Heif_encoding_options
+  { heif_encoding_options_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_encoding.h 283:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_save_alpha_channel :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @save_alpha_channel@
+
+         __defined at:__ @libheif\/heif_encoding.h 287:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_macOS_compatibility_workaround :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @macOS_compatibility_workaround@
+
+         __defined at:__ @libheif\/heif_encoding.h 292:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @save_two_colr_boxes_when_ICC_and_nclx_available@
+
+         __defined at:__ @libheif\/heif_encoding.h 296:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_output_nclx_profile :: BG.Ptr Heif_color_profile_nclx
+    {- ^ __C declaration:__ @output_nclx_profile@
+
+         __defined at:__ @libheif\/heif_encoding.h 302:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @macOS_compatibility_workaround_no_nclx_profile@
+
+         __defined at:__ @libheif\/heif_encoding.h 304:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_image_orientation :: Heif_orientation
+    {- ^ __C declaration:__ @image_orientation@
+
+         __defined at:__ @libheif\/heif_encoding.h 309:20@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_color_conversion_options :: Heif_color_conversion_options
+    {- ^ __C declaration:__ @color_conversion_options@
+
+         __defined at:__ @libheif\/heif_encoding.h 313:33@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_prefer_uncC_short_form :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @prefer_uncC_short_form@
+
+         __defined at:__ @libheif\/heif_encoding.h 318:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_unci_parameters :: PtrConst.PtrConst Heif_unci_image_parameters
+    {- ^ __C declaration:__ @unci_parameters@
+
+         __defined at:__ @libheif\/heif_encoding.h 326:37@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_encoding_options where
+
+  staticSizeOf = \_ -> (56 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_encoding_options where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_encoding_options
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_save_alpha_channel") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_output_nclx_profile") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_image_orientation") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_color_conversion_options") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_prefer_uncC_short_form") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_unci_parameters") ptr0
+
+instance Marshal.WriteRaw Heif_encoding_options where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_encoding_options
+            heif_encoding_options_version2
+            heif_encoding_options_save_alpha_channel3
+            heif_encoding_options_macOS_compatibility_workaround4
+            heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available5
+            heif_encoding_options_output_nclx_profile6
+            heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile7
+            heif_encoding_options_image_orientation8
+            heif_encoding_options_color_conversion_options9
+            heif_encoding_options_prefer_uncC_short_form10
+            heif_encoding_options_unci_parameters11 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_encoding_options_version") ptr0 heif_encoding_options_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_save_alpha_channel") ptr0 heif_encoding_options_save_alpha_channel3
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround") ptr0 heif_encoding_options_macOS_compatibility_workaround4
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available") ptr0 heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available5
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_output_nclx_profile") ptr0 heif_encoding_options_output_nclx_profile6
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile") ptr0 heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile7
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_image_orientation") ptr0 heif_encoding_options_image_orientation8
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_color_conversion_options") ptr0 heif_encoding_options_color_conversion_options9
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_prefer_uncC_short_form") ptr0 heif_encoding_options_prefer_uncC_short_form10
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_unci_parameters") ptr0 heif_encoding_options_unci_parameters11
+
+deriving via Marshal.EquivStorable Heif_encoding_options instance BG.Storable Heif_encoding_options
+
+deriving via Struct.IsStructViaReadRaw Heif_encoding_options instance Struct.IsStruct Heif_encoding_options
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_encoding.h 283:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_version" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_version = y1
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_version" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_version")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_version" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @save_alpha_channel@
+
+    __defined at:__ @libheif\/heif_encoding.h 287:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_save_alpha_channel" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_save_alpha_channel = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_save_alpha_channel" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_save_alpha_channel" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_save_alpha_channel")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_save_alpha_channel" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_save_alpha_channel" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 1
+
+{-| __C declaration:__ @macOS_compatibility_workaround@
+
+    __defined at:__ @libheif\/heif_encoding.h 292:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_macOS_compatibility_workaround" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_macOS_compatibility_workaround = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_macOS_compatibility_workaround" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 2
+
+{-| __C declaration:__ @save_two_colr_boxes_when_ICC_and_nclx_available@
+
+    __defined at:__ @libheif\/heif_encoding.h 296:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 3
+
+{-| __C declaration:__ @output_nclx_profile@
+
+    __defined at:__ @libheif\/heif_encoding.h 302:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.CompatHasField.HasField "heif_encoding_options_output_nclx_profile" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_output_nclx_profile = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_output_nclx_profile" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.HasField "heif_encoding_options_output_nclx_profile" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_output_nclx_profile")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_output_nclx_profile" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_output_nclx_profile" =
+    BG.Ptr Heif_color_profile_nclx
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @macOS_compatibility_workaround_no_nclx_profile@
+
+    __defined at:__ @libheif\/heif_encoding.h 304:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @image_orientation@
+
+    __defined at:__ @libheif\/heif_encoding.h 309:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_orientation
+         ) => BG.CompatHasField.HasField "heif_encoding_options_image_orientation" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_image_orientation = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_image_orientation" x0
+      )
+
+instance ( ty ~ Heif_orientation
+         ) => BG.HasField "heif_encoding_options_image_orientation" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_image_orientation")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_image_orientation" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_image_orientation" =
+    Heif_orientation
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @color_conversion_options@
+
+    __defined at:__ @libheif\/heif_encoding.h 313:33@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.CompatHasField.HasField "heif_encoding_options_color_conversion_options" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_color_conversion_options = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_color_conversion_options" x0
+      )
+
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.HasField "heif_encoding_options_color_conversion_options" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_color_conversion_options")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_color_conversion_options" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_color_conversion_options" =
+    Heif_color_conversion_options
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @prefer_uncC_short_form@
+
+    __defined at:__ @libheif\/heif_encoding.h 318:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_prefer_uncC_short_form" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_prefer_uncC_short_form = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_prefer_uncC_short_form" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_prefer_uncC_short_form")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_prefer_uncC_short_form" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_prefer_uncC_short_form" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @unci_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 326:37@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst Heif_unci_image_parameters
+         ) => BG.CompatHasField.HasField "heif_encoding_options_unci_parameters" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_unci_parameters = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                }
+      , BG.getField @"heif_encoding_options_unci_parameters" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst Heif_unci_image_parameters
+         ) => BG.HasField "heif_encoding_options_unci_parameters" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_unci_parameters")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_unci_parameters" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_unci_parameters" =
+    PtrConst.PtrConst Heif_unci_image_parameters
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @enum heif_progress_step@
+
+    __defined at:__ @libheif\/heif_decoding.h 56:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_progress_step = Heif_progress_step
+  { unwrapHeif_progress_step :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_progress_step where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_progress_step where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_progress_step
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_progress_step where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_progress_step unwrapHeif_progress_step2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_progress_step2
+
+deriving via Marshal.EquivStorable Heif_progress_step instance BG.Storable Heif_progress_step
+
+deriving via BG.CUInt instance BG.Prim Heif_progress_step
+
+instance CEnum.CEnum Heif_progress_step where
+
+  type CEnumZ Heif_progress_step = BG.CUInt
+
+  toCEnum = Heif_progress_step
+
+  fromCEnum = BG.getField @"unwrapHeif_progress_step"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_progress_step_total")
+                                   , (1, BG.singleton "Heif_progress_step_load_tile")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_progress_step"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_progress_step"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_progress_step where
+
+  minDeclaredValue = Heif_progress_step_total
+
+  maxDeclaredValue = Heif_progress_step_load_tile
+
+instance Show Heif_progress_step where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_progress_step where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_progress_step" Heif_progress_step ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_progress_step {unwrapHeif_progress_step = y1}
+      , BG.getField @"unwrapHeif_progress_step" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_progress_step" (BG.Ptr Heif_progress_step) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_progress_step")
+
+instance HasCField.HasCField Heif_progress_step "unwrapHeif_progress_step" where
+
+  type CFieldType Heif_progress_step "unwrapHeif_progress_step" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_progress_step_total@
+
+    __defined at:__ @libheif\/heif_decoding.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_progress_step_total :: Heif_progress_step
+pattern Heif_progress_step_total = Heif_progress_step 0
+
+{-| __C declaration:__ @heif_progress_step_load_tile@
+
+    __defined at:__ @libheif\/heif_decoding.h 59:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_progress_step_load_tile :: Heif_progress_step
+pattern Heif_progress_step_load_tile = Heif_progress_step 1
+
+{-| __C declaration:__ @struct heif_decoding_options@
+
+    __defined at:__ @libheif\/heif_decoding.h 63:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoding_options = Heif_decoding_options
+  { heif_decoding_options_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_decoding.h 65:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_ignore_transformations :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @ignore_transformations@
+
+         __defined at:__ @libheif\/heif_decoding.h 71:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_start_progress :: BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @start_progress@
+
+         __defined at:__ @libheif\/heif_decoding.h 74:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_on_progress :: BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @on_progress@
+
+         __defined at:__ @libheif\/heif_decoding.h 76:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_end_progress :: BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @end_progress@
+
+         __defined at:__ @libheif\/heif_decoding.h 78:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_progress_user_data :: BG.Ptr BG.Void
+    {- ^ __C declaration:__ @progress_user_data@
+
+         __defined at:__ @libheif\/heif_decoding.h 80:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_convert_hdr_to_8bit :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @convert_hdr_to_8bit@
+
+         __defined at:__ @libheif\/heif_decoding.h 84:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_strict_decoding :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @strict_decoding@
+
+         __defined at:__ @libheif\/heif_decoding.h 90:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_decoder_id :: PtrConst.PtrConst BG.CChar
+    {- ^ __C declaration:__ @decoder_id@
+
+         __defined at:__ @libheif\/heif_decoding.h 97:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_color_conversion_options :: Heif_color_conversion_options
+    {- ^ __C declaration:__ @color_conversion_options@
+
+         __defined at:__ @libheif\/heif_decoding.h 101:33@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_cancel_decoding :: BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+    {- ^ __C declaration:__ @cancel_decoding@
+
+         __defined at:__ @libheif\/heif_decoding.h 105:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_color_conversion_options_ext :: BG.Ptr Heif_color_conversion_options_ext
+    {- ^ __C declaration:__ @color_conversion_options_ext@
+
+         __defined at:__ @libheif\/heif_decoding.h 110:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_ignore_sequence_editlist :: BG.CInt
+    {- ^ __C declaration:__ @ignore_sequence_editlist@
+
+         __defined at:__ @libheif\/heif_decoding.h 115:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_output_image_nclx_profile :: BG.Ptr Heif_color_profile_nclx
+    {- ^ __C declaration:__ @output_image_nclx_profile@
+
+         __defined at:__ @libheif\/heif_decoding.h 126:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_num_library_threads :: BG.CInt
+    {- ^ __C declaration:__ @num_library_threads@
+
+         __defined at:__ @libheif\/heif_decoding.h 128:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_num_codec_threads :: BG.CInt
+    {- ^ __C declaration:__ @num_codec_threads@
+
+         __defined at:__ @libheif\/heif_decoding.h 129:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_autocorrect_broken_input :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @autocorrect_broken_input@
+
+         __defined at:__ @libheif\/heif_decoding.h 136:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_output_image_nclx_profile_passthrough :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @output_image_nclx_profile_passthrough@
+
+         __defined at:__ @libheif\/heif_decoding.h 157:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_decoding_options where
+
+  staticSizeOf = \_ -> (120 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_decoding_options where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_decoding_options
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_ignore_transformations") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_start_progress") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_on_progress") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_end_progress") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_progress_user_data") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_convert_hdr_to_8bit") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_strict_decoding") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_decoder_id") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_color_conversion_options") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_cancel_decoding") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_color_conversion_options_ext") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_ignore_sequence_editlist") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_num_library_threads") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_num_codec_threads") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_autocorrect_broken_input") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile_passthrough") ptr0
+
+instance Marshal.WriteRaw Heif_decoding_options where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_decoding_options
+            heif_decoding_options_version2
+            heif_decoding_options_ignore_transformations3
+            heif_decoding_options_start_progress4
+            heif_decoding_options_on_progress5
+            heif_decoding_options_end_progress6
+            heif_decoding_options_progress_user_data7
+            heif_decoding_options_convert_hdr_to_8bit8
+            heif_decoding_options_strict_decoding9
+            heif_decoding_options_decoder_id10
+            heif_decoding_options_color_conversion_options11
+            heif_decoding_options_cancel_decoding12
+            heif_decoding_options_color_conversion_options_ext13
+            heif_decoding_options_ignore_sequence_editlist14
+            heif_decoding_options_output_image_nclx_profile15
+            heif_decoding_options_num_library_threads16
+            heif_decoding_options_num_codec_threads17
+            heif_decoding_options_autocorrect_broken_input18
+            heif_decoding_options_output_image_nclx_profile_passthrough19 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_decoding_options_version") ptr0 heif_decoding_options_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_ignore_transformations") ptr0 heif_decoding_options_ignore_transformations3
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_start_progress") ptr0 heif_decoding_options_start_progress4
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_on_progress") ptr0 heif_decoding_options_on_progress5
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_end_progress") ptr0 heif_decoding_options_end_progress6
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_progress_user_data") ptr0 heif_decoding_options_progress_user_data7
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_convert_hdr_to_8bit") ptr0 heif_decoding_options_convert_hdr_to_8bit8
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_strict_decoding") ptr0 heif_decoding_options_strict_decoding9
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_decoder_id") ptr0 heif_decoding_options_decoder_id10
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_color_conversion_options") ptr0 heif_decoding_options_color_conversion_options11
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_cancel_decoding") ptr0 heif_decoding_options_cancel_decoding12
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_color_conversion_options_ext") ptr0 heif_decoding_options_color_conversion_options_ext13
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_ignore_sequence_editlist") ptr0 heif_decoding_options_ignore_sequence_editlist14
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile") ptr0 heif_decoding_options_output_image_nclx_profile15
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_num_library_threads") ptr0 heif_decoding_options_num_library_threads16
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_num_codec_threads") ptr0 heif_decoding_options_num_codec_threads17
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_autocorrect_broken_input") ptr0 heif_decoding_options_autocorrect_broken_input18
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile_passthrough") ptr0 heif_decoding_options_output_image_nclx_profile_passthrough19
+
+deriving via Marshal.EquivStorable Heif_decoding_options instance BG.Storable Heif_decoding_options
+
+deriving via Struct.IsStructViaReadRaw Heif_decoding_options instance Struct.IsStruct Heif_decoding_options
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_decoding.h 65:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_version" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_version = y1
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_version" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_version")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_version" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @ignore_transformations@
+
+    __defined at:__ @libheif\/heif_decoding.h 71:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_ignore_transformations" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_ignore_transformations = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_ignore_transformations" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_ignore_transformations" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_ignore_transformations")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_ignore_transformations" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_ignore_transformations" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 1
+
+{-| __C declaration:__ @start_progress@
+
+    __defined at:__ @libheif\/heif_decoding.h 74:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_decoding_options_start_progress" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_start_progress = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_start_progress" x0
+      )
+
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_decoding_options_start_progress" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_start_progress")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_start_progress" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_start_progress" =
+    BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @on_progress@
+
+    __defined at:__ @libheif\/heif_decoding.h 76:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_decoding_options_on_progress" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_on_progress = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_on_progress" x0
+      )
+
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_decoding_options_on_progress" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_on_progress")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_on_progress" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_on_progress" =
+    BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @end_progress@
+
+    __defined at:__ @libheif\/heif_decoding.h 78:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_decoding_options_end_progress" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_end_progress = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_end_progress" x0
+      )
+
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_decoding_options_end_progress" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_end_progress")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_end_progress" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_end_progress" =
+    BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @progress_user_data@
+
+    __defined at:__ @libheif\/heif_decoding.h 80:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.CompatHasField.HasField "heif_decoding_options_progress_user_data" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_progress_user_data = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_progress_user_data" x0
+      )
+
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.HasField "heif_decoding_options_progress_user_data" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_progress_user_data")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_progress_user_data" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_progress_user_data" =
+    BG.Ptr BG.Void
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @convert_hdr_to_8bit@
+
+    __defined at:__ @libheif\/heif_decoding.h 84:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_convert_hdr_to_8bit" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_convert_hdr_to_8bit = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_convert_hdr_to_8bit" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_convert_hdr_to_8bit")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_convert_hdr_to_8bit" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_convert_hdr_to_8bit" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @strict_decoding@
+
+    __defined at:__ @libheif\/heif_decoding.h 90:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_strict_decoding" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_strict_decoding = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_strict_decoding" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_strict_decoding" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_strict_decoding")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_strict_decoding" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_strict_decoding" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 41
+
+{-| __C declaration:__ @decoder_id@
+
+    __defined at:__ @libheif\/heif_decoding.h 97:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.CompatHasField.HasField "heif_decoding_options_decoder_id" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_decoder_id = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_decoder_id" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.HasField "heif_decoding_options_decoder_id" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_decoder_id")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_decoder_id" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_decoder_id" =
+    PtrConst.PtrConst BG.CChar
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @color_conversion_options@
+
+    __defined at:__ @libheif\/heif_decoding.h 101:33@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.CompatHasField.HasField "heif_decoding_options_color_conversion_options" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_color_conversion_options = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_color_conversion_options" x0
+      )
+
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.HasField "heif_decoding_options_color_conversion_options" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_color_conversion_options")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_color_conversion_options" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_color_conversion_options" =
+    Heif_color_conversion_options
+
+  offset# = \_ -> \_ -> 56
+
+{-| __C declaration:__ @cancel_decoding@
+
+    __defined at:__ @libheif\/heif_decoding.h 105:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.CompatHasField.HasField "heif_decoding_options_cancel_decoding" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_cancel_decoding = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_cancel_decoding" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.HasField "heif_decoding_options_cancel_decoding" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_cancel_decoding")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_cancel_decoding" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_cancel_decoding" =
+    BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+
+  offset# = \_ -> \_ -> 72
+
+{-| __C declaration:__ @color_conversion_options_ext@
+
+    __defined at:__ @libheif\/heif_decoding.h 110:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_color_conversion_options_ext
+         ) => BG.CompatHasField.HasField "heif_decoding_options_color_conversion_options_ext" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_color_conversion_options_ext = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_color_conversion_options_ext
+         ) => BG.HasField "heif_decoding_options_color_conversion_options_ext" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_color_conversion_options_ext")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_color_conversion_options_ext" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_color_conversion_options_ext" =
+    BG.Ptr Heif_color_conversion_options_ext
+
+  offset# = \_ -> \_ -> 80
+
+{-| __C declaration:__ @ignore_sequence_editlist@
+
+    __defined at:__ @libheif\/heif_decoding.h 115:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_decoding_options_ignore_sequence_editlist" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_ignore_sequence_editlist = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_decoding_options_ignore_sequence_editlist" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_ignore_sequence_editlist")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_ignore_sequence_editlist" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_ignore_sequence_editlist" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 88
+
+{-| __C declaration:__ @output_image_nclx_profile@
+
+    __defined at:__ @libheif\/heif_decoding.h 126:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.CompatHasField.HasField "heif_decoding_options_output_image_nclx_profile" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_output_image_nclx_profile = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.HasField "heif_decoding_options_output_image_nclx_profile" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_output_image_nclx_profile")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_output_image_nclx_profile" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_output_image_nclx_profile" =
+    BG.Ptr Heif_color_profile_nclx
+
+  offset# = \_ -> \_ -> 96
+
+{-| __C declaration:__ @num_library_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 128:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_decoding_options_num_library_threads" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_num_library_threads = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_num_library_threads" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_decoding_options_num_library_threads" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_num_library_threads")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_num_library_threads" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_num_library_threads" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 104
+
+{-| __C declaration:__ @num_codec_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 129:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_decoding_options_num_codec_threads" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_num_codec_threads = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_num_codec_threads" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_decoding_options_num_codec_threads" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_num_codec_threads")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_num_codec_threads" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_num_codec_threads" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 108
+
+{-| __C declaration:__ @autocorrect_broken_input@
+
+    __defined at:__ @libheif\/heif_decoding.h 136:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_autocorrect_broken_input" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_autocorrect_broken_input = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_autocorrect_broken_input" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_autocorrect_broken_input")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_autocorrect_broken_input" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_autocorrect_broken_input" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 112
+
+{-| __C declaration:__ @output_image_nclx_profile_passthrough@
+
+    __defined at:__ @libheif\/heif_decoding.h 157:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_output_image_nclx_profile_passthrough" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_output_image_nclx_profile_passthrough = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                }
+      , BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_output_image_nclx_profile_passthrough" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_output_image_nclx_profile_passthrough")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_output_image_nclx_profile_passthrough" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_output_image_nclx_profile_passthrough" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 113
+
+{-| __C declaration:__ @struct heif_decoder_descriptor@
+
+    __defined at:__ @libheif\/heif_decoding.h 175:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoder_descriptor
+
+{-| __C declaration:__ @struct heif_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 37:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_image_tiling = Heif_image_tiling
+  { heif_image_tiling_version :: BG.CInt
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_tiling.h 39:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_num_columns :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @num_columns@
+
+         __defined at:__ @libheif\/heif_tiling.h 43:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_num_rows :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @num_rows@
+
+         __defined at:__ @libheif\/heif_tiling.h 44:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_tile_width :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @tile_width@
+
+         __defined at:__ @libheif\/heif_tiling.h 45:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_tile_height :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @tile_height@
+
+         __defined at:__ @libheif\/heif_tiling.h 46:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_image_width :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @image_width@
+
+         __defined at:__ @libheif\/heif_tiling.h 48:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_image_height :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @image_height@
+
+         __defined at:__ @libheif\/heif_tiling.h 49:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_top_offset :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @top_offset@
+
+         __defined at:__ @libheif\/heif_tiling.h 54:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_left_offset :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @left_offset@
+
+         __defined at:__ @libheif\/heif_tiling.h 55:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_number_of_extra_dimensions :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @number_of_extra_dimensions@
+
+         __defined at:__ @libheif\/heif_tiling.h 57:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_extra_dimension_size :: CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @extra_dimension_size@
+
+         __defined at:__ @libheif\/heif_tiling.h 58:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_image_tiling where
+
+  staticSizeOf = \_ -> (72 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_image_tiling where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_image_tiling
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_num_columns") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_num_rows") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_tile_width") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_tile_height") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_image_width") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_image_height") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_top_offset") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_left_offset") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_number_of_extra_dimensions") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_extra_dimension_size") ptr0
+
+instance Marshal.WriteRaw Heif_image_tiling where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_image_tiling
+            heif_image_tiling_version2
+            heif_image_tiling_num_columns3
+            heif_image_tiling_num_rows4
+            heif_image_tiling_tile_width5
+            heif_image_tiling_tile_height6
+            heif_image_tiling_image_width7
+            heif_image_tiling_image_height8
+            heif_image_tiling_top_offset9
+            heif_image_tiling_left_offset10
+            heif_image_tiling_number_of_extra_dimensions11
+            heif_image_tiling_extra_dimension_size12 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_image_tiling_version") ptr0 heif_image_tiling_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_num_columns") ptr0 heif_image_tiling_num_columns3
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_num_rows") ptr0 heif_image_tiling_num_rows4
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_tile_width") ptr0 heif_image_tiling_tile_width5
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_tile_height") ptr0 heif_image_tiling_tile_height6
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_image_width") ptr0 heif_image_tiling_image_width7
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_image_height") ptr0 heif_image_tiling_image_height8
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_top_offset") ptr0 heif_image_tiling_top_offset9
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_left_offset") ptr0 heif_image_tiling_left_offset10
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_number_of_extra_dimensions") ptr0 heif_image_tiling_number_of_extra_dimensions11
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_extra_dimension_size") ptr0 heif_image_tiling_extra_dimension_size12
+
+deriving via Marshal.EquivStorable Heif_image_tiling instance BG.Storable Heif_image_tiling
+
+deriving via Struct.IsStructViaReadRaw Heif_image_tiling instance Struct.IsStruct Heif_image_tiling
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_tiling.h 39:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_image_tiling_version" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_version = y1
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_image_tiling_version" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_version")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_version" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @num_columns@
+
+    __defined at:__ @libheif\/heif_tiling.h 43:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_num_columns" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_num_columns = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_num_columns" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_num_columns" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_num_columns")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_num_columns" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_num_columns" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @num_rows@
+
+    __defined at:__ @libheif\/heif_tiling.h 44:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_num_rows" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_num_rows = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_num_rows" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_num_rows" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_num_rows")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_num_rows" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_num_rows" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @tile_width@
+
+    __defined at:__ @libheif\/heif_tiling.h 45:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_tile_width" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_tile_width = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_tile_width" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_tile_width" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_tile_width")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_tile_width" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_tile_width" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @tile_height@
+
+    __defined at:__ @libheif\/heif_tiling.h 46:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_tile_height" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_tile_height = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_tile_height" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_tile_height" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_tile_height")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_tile_height" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_tile_height" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @image_width@
+
+    __defined at:__ @libheif\/heif_tiling.h 48:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_image_width" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_image_width = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_image_width" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_image_width" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_image_width")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_image_width" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_image_width" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @image_height@
+
+    __defined at:__ @libheif\/heif_tiling.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_image_height" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_image_height = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_image_height" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_image_height" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_image_height")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_image_height" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_image_height" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @top_offset@
+
+    __defined at:__ @libheif\/heif_tiling.h 54:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_top_offset" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_top_offset = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_top_offset" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_top_offset" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_top_offset")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_top_offset" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_top_offset" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @left_offset@
+
+    __defined at:__ @libheif\/heif_tiling.h 55:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_left_offset" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_left_offset = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_left_offset" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_left_offset" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_left_offset")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_left_offset" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_left_offset" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @number_of_extra_dimensions@
+
+    __defined at:__ @libheif\/heif_tiling.h 57:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_image_tiling_number_of_extra_dimensions" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_number_of_extra_dimensions = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_image_tiling_number_of_extra_dimensions" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_number_of_extra_dimensions")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_number_of_extra_dimensions" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_number_of_extra_dimensions" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 36
+
+{-| __C declaration:__ @extra_dimension_size@
+
+    __defined at:__ @libheif\/heif_tiling.h 58:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_extra_dimension_size" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_extra_dimension_size = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            }
+      , BG.getField @"heif_image_tiling_extra_dimension_size" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_extra_dimension_size" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_extra_dimension_size")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_extra_dimension_size" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_extra_dimension_size" =
+    CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @enum heif_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 48:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_component_datatype = Heif_component_datatype
+  { unwrapHeif_component_datatype :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_component_datatype where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_component_datatype where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_component_datatype
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_component_datatype where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_component_datatype unwrapHeif_component_datatype2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_component_datatype2
+
+deriving via Marshal.EquivStorable Heif_component_datatype instance BG.Storable Heif_component_datatype
+
+deriving via BG.CUInt instance BG.Prim Heif_component_datatype
+
+instance CEnum.CEnum Heif_component_datatype where
+
+  type CEnumZ Heif_component_datatype = BG.CUInt
+
+  toCEnum = Heif_component_datatype
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_component_datatype"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_component_datatype_unsigned_integer")
+                                   , (1, BG.singleton "Heif_component_datatype_floating_point")
+                                   , (2, BG.singleton "Heif_component_datatype_complex_number")
+                                   , (3, BG.singleton "Heif_component_datatype_signed_integer")
+                                   , (255, BG.singleton "Heif_component_datatype_undefined")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_component_datatype"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_component_datatype"
+
+instance Show Heif_component_datatype where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_component_datatype where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_component_datatype" Heif_component_datatype ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_component_datatype {unwrapHeif_component_datatype = y1}
+      , BG.getField @"unwrapHeif_component_datatype" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_component_datatype" (BG.Ptr Heif_component_datatype) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_component_datatype")
+
+instance HasCField.HasCField Heif_component_datatype "unwrapHeif_component_datatype" where
+
+  type CFieldType Heif_component_datatype "unwrapHeif_component_datatype" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_component_datatype_unsigned_integer@
+
+    __defined at:__ @libheif\/heif_components.h 50:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_unsigned_integer :: Heif_component_datatype
+pattern Heif_component_datatype_unsigned_integer = Heif_component_datatype 0
+
+{-| __C declaration:__ @heif_component_datatype_floating_point@
+
+    __defined at:__ @libheif\/heif_components.h 51:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_floating_point :: Heif_component_datatype
+pattern Heif_component_datatype_floating_point = Heif_component_datatype 1
+
+{-| __C declaration:__ @heif_component_datatype_complex_number@
+
+    __defined at:__ @libheif\/heif_components.h 52:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_complex_number :: Heif_component_datatype
+pattern Heif_component_datatype_complex_number = Heif_component_datatype 2
+
+{-| __C declaration:__ @heif_component_datatype_signed_integer@
+
+    __defined at:__ @libheif\/heif_components.h 53:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_signed_integer :: Heif_component_datatype
+pattern Heif_component_datatype_signed_integer = Heif_component_datatype 3
+
+{-| __C declaration:__ @heif_component_datatype_undefined@
+
+    __defined at:__ @libheif\/heif_components.h 54:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_undefined :: Heif_component_datatype
+pattern Heif_component_datatype_undefined = Heif_component_datatype 255
+
+{-| __C declaration:__ @struct heif_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 57:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_complex32 = Heif_complex32
+  { heif_complex32_real :: BG.CFloat
+    {- ^ __C declaration:__ @real@
+
+         __defined at:__ @libheif\/heif_components.h 59:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_complex32_imaginary :: BG.CFloat
+    {- ^ __C declaration:__ @imaginary@
+
+         __defined at:__ @libheif\/heif_components.h 59:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_complex32 where
+
+  staticSizeOf = \_ -> (8 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_complex32 where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_complex32
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex32_real") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex32_imaginary") ptr0
+
+instance Marshal.WriteRaw Heif_complex32 where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_complex32 heif_complex32_real2 heif_complex32_imaginary3 ->
+               HasCField.writeRaw (BG.Proxy @"heif_complex32_real") ptr0 heif_complex32_real2
+            >> HasCField.writeRaw (BG.Proxy @"heif_complex32_imaginary") ptr0 heif_complex32_imaginary3
+
+deriving via Marshal.EquivStorable Heif_complex32 instance BG.Storable Heif_complex32
+
+deriving via Struct.IsStructViaReadRaw Heif_complex32 instance Struct.IsStruct Heif_complex32
+
+{-| __C declaration:__ @real@
+
+    __defined at:__ @libheif\/heif_components.h 59:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_complex32_real" Heif_complex32 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex32 { heif_complex32_real = y1
+                         , heif_complex32_imaginary = BG.getField @"heif_complex32_imaginary" x0
+                         }
+      , BG.getField @"heif_complex32_real" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_complex32_real" (BG.Ptr Heif_complex32) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex32_real")
+
+instance HasCField.HasCField Heif_complex32 "heif_complex32_real" where
+
+  type CFieldType Heif_complex32 "heif_complex32_real" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @imaginary@
+
+    __defined at:__ @libheif\/heif_components.h 59:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_complex32_imaginary" Heif_complex32 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex32 { heif_complex32_imaginary = y1
+                         , heif_complex32_real = BG.getField @"heif_complex32_real" x0
+                         }
+      , BG.getField @"heif_complex32_imaginary" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_complex32_imaginary" (BG.Ptr Heif_complex32) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex32_imaginary")
+
+instance HasCField.HasCField Heif_complex32 "heif_complex32_imaginary" where
+
+  type CFieldType Heif_complex32 "heif_complex32_imaginary" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @struct heif_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 62:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_complex64 = Heif_complex64
+  { heif_complex64_real :: BG.CDouble
+    {- ^ __C declaration:__ @real@
+
+         __defined at:__ @libheif\/heif_components.h 64:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_complex64_imaginary :: BG.CDouble
+    {- ^ __C declaration:__ @imaginary@
+
+         __defined at:__ @libheif\/heif_components.h 64:16@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_complex64 where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_complex64 where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_complex64
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex64_real") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex64_imaginary") ptr0
+
+instance Marshal.WriteRaw Heif_complex64 where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_complex64 heif_complex64_real2 heif_complex64_imaginary3 ->
+               HasCField.writeRaw (BG.Proxy @"heif_complex64_real") ptr0 heif_complex64_real2
+            >> HasCField.writeRaw (BG.Proxy @"heif_complex64_imaginary") ptr0 heif_complex64_imaginary3
+
+deriving via Marshal.EquivStorable Heif_complex64 instance BG.Storable Heif_complex64
+
+deriving via Struct.IsStructViaReadRaw Heif_complex64 instance Struct.IsStruct Heif_complex64
+
+{-| __C declaration:__ @real@
+
+    __defined at:__ @libheif\/heif_components.h 64:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_complex64_real" Heif_complex64 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex64 { heif_complex64_real = y1
+                         , heif_complex64_imaginary = BG.getField @"heif_complex64_imaginary" x0
+                         }
+      , BG.getField @"heif_complex64_real" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_complex64_real" (BG.Ptr Heif_complex64) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex64_real")
+
+instance HasCField.HasCField Heif_complex64 "heif_complex64_real" where
+
+  type CFieldType Heif_complex64 "heif_complex64_real" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @imaginary@
+
+    __defined at:__ @libheif\/heif_components.h 64:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_complex64_imaginary" Heif_complex64 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex64 { heif_complex64_imaginary = y1
+                         , heif_complex64_real = BG.getField @"heif_complex64_real" x0
+                         }
+      , BG.getField @"heif_complex64_imaginary" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_complex64_imaginary" (BG.Ptr Heif_complex64) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex64_imaginary")
+
+instance HasCField.HasCField Heif_complex64 "heif_complex64_imaginary" where
+
+  type CFieldType Heif_complex64 "heif_complex64_imaginary" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @enum heif_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 70:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_cmpd_component_type = Heif_cmpd_component_type
+  { unwrapHeif_cmpd_component_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_cmpd_component_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_cmpd_component_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_cmpd_component_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_cmpd_component_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_cmpd_component_type unwrapHeif_cmpd_component_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_cmpd_component_type2
+
+deriving via Marshal.EquivStorable Heif_cmpd_component_type instance BG.Storable Heif_cmpd_component_type
+
+deriving via BG.CUInt instance BG.Prim Heif_cmpd_component_type
+
+instance CEnum.CEnum Heif_cmpd_component_type where
+
+  type CEnumZ Heif_cmpd_component_type = BG.CUInt
+
+  toCEnum = Heif_cmpd_component_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_cmpd_component_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_cmpd_component_type_monochrome")
+                                   , (1, BG.singleton "Heif_cmpd_component_type_Y")
+                                   , (2, BG.singleton "Heif_cmpd_component_type_Cb")
+                                   , (3, BG.singleton "Heif_cmpd_component_type_Cr")
+                                   , (4, BG.singleton "Heif_cmpd_component_type_red")
+                                   , (5, BG.singleton "Heif_cmpd_component_type_green")
+                                   , (6, BG.singleton "Heif_cmpd_component_type_blue")
+                                   , (7, BG.singleton "Heif_cmpd_component_type_alpha")
+                                   , (8, BG.singleton "Heif_cmpd_component_type_depth")
+                                   , (9, BG.singleton "Heif_cmpd_component_type_disparity")
+                                   , (10, BG.singleton "Heif_cmpd_component_type_palette")
+                                   , (11, BG.singleton "Heif_cmpd_component_type_filter_array")
+                                   , (12, BG.singleton "Heif_cmpd_component_type_padded")
+                                   , (13, BG.singleton "Heif_cmpd_component_type_cyan")
+                                   , (14, BG.singleton "Heif_cmpd_component_type_magenta")
+                                   , (15, BG.singleton "Heif_cmpd_component_type_yellow")
+                                   , (16, BG.singleton "Heif_cmpd_component_type_key_black")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_cmpd_component_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_cmpd_component_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_cmpd_component_type where
+
+  minDeclaredValue =
+    Heif_cmpd_component_type_monochrome
+
+  maxDeclaredValue = Heif_cmpd_component_type_key_black
+
+instance Show Heif_cmpd_component_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_cmpd_component_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_cmpd_component_type" Heif_cmpd_component_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_cmpd_component_type {unwrapHeif_cmpd_component_type = y1}
+      , BG.getField @"unwrapHeif_cmpd_component_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_cmpd_component_type" (BG.Ptr Heif_cmpd_component_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_cmpd_component_type")
+
+instance HasCField.HasCField Heif_cmpd_component_type "unwrapHeif_cmpd_component_type" where
+
+  type CFieldType Heif_cmpd_component_type "unwrapHeif_cmpd_component_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_cmpd_component_type_monochrome@
+
+    __defined at:__ @libheif\/heif_components.h 72:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_monochrome :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_monochrome = Heif_cmpd_component_type 0
+
+{-| __C declaration:__ @heif_cmpd_component_type_Y@
+
+    __defined at:__ @libheif\/heif_components.h 73:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_Y :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_Y = Heif_cmpd_component_type 1
+
+{-| __C declaration:__ @heif_cmpd_component_type_Cb@
+
+    __defined at:__ @libheif\/heif_components.h 74:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_Cb :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_Cb = Heif_cmpd_component_type 2
+
+{-| __C declaration:__ @heif_cmpd_component_type_Cr@
+
+    __defined at:__ @libheif\/heif_components.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_Cr :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_Cr = Heif_cmpd_component_type 3
+
+{-| __C declaration:__ @heif_cmpd_component_type_red@
+
+    __defined at:__ @libheif\/heif_components.h 76:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_red :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_red = Heif_cmpd_component_type 4
+
+{-| __C declaration:__ @heif_cmpd_component_type_green@
+
+    __defined at:__ @libheif\/heif_components.h 77:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_green :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_green = Heif_cmpd_component_type 5
+
+{-| __C declaration:__ @heif_cmpd_component_type_blue@
+
+    __defined at:__ @libheif\/heif_components.h 78:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_blue :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_blue = Heif_cmpd_component_type 6
+
+{-| __C declaration:__ @heif_cmpd_component_type_alpha@
+
+    __defined at:__ @libheif\/heif_components.h 79:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_alpha :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_alpha = Heif_cmpd_component_type 7
+
+{-| __C declaration:__ @heif_cmpd_component_type_depth@
+
+    __defined at:__ @libheif\/heif_components.h 80:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_depth :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_depth = Heif_cmpd_component_type 8
+
+{-| __C declaration:__ @heif_cmpd_component_type_disparity@
+
+    __defined at:__ @libheif\/heif_components.h 81:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_disparity :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_disparity = Heif_cmpd_component_type 9
+
+{-| __C declaration:__ @heif_cmpd_component_type_palette@
+
+    __defined at:__ @libheif\/heif_components.h 82:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_palette :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_palette = Heif_cmpd_component_type 10
+
+{-| __C declaration:__ @heif_cmpd_component_type_filter_array@
+
+    __defined at:__ @libheif\/heif_components.h 83:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_filter_array :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_filter_array = Heif_cmpd_component_type 11
+
+{-| __C declaration:__ @heif_cmpd_component_type_padded@
+
+    __defined at:__ @libheif\/heif_components.h 84:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_padded :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_padded = Heif_cmpd_component_type 12
+
+{-| __C declaration:__ @heif_cmpd_component_type_cyan@
+
+    __defined at:__ @libheif\/heif_components.h 85:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_cyan :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_cyan = Heif_cmpd_component_type 13
+
+{-| __C declaration:__ @heif_cmpd_component_type_magenta@
+
+    __defined at:__ @libheif\/heif_components.h 86:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_magenta :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_magenta = Heif_cmpd_component_type 14
+
+{-| __C declaration:__ @heif_cmpd_component_type_yellow@
+
+    __defined at:__ @libheif\/heif_components.h 87:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_yellow :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_yellow = Heif_cmpd_component_type 15
+
+{-| __C declaration:__ @heif_cmpd_component_type_key_black@
+
+    __defined at:__ @libheif\/heif_components.h 88:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_key_black :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_key_black = Heif_cmpd_component_type 16
+
+{-| __C declaration:__ @enum heif_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 49:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_omaf_image_projection = Heif_omaf_image_projection
+  { unwrapHeif_omaf_image_projection :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_omaf_image_projection where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_omaf_image_projection where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_omaf_image_projection
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_omaf_image_projection where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_omaf_image_projection unwrapHeif_omaf_image_projection2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_omaf_image_projection2
+
+deriving via Marshal.EquivStorable Heif_omaf_image_projection instance BG.Storable Heif_omaf_image_projection
+
+deriving via BG.CUInt instance BG.Prim Heif_omaf_image_projection
+
+instance CEnum.CEnum Heif_omaf_image_projection where
+
+  type CEnumZ Heif_omaf_image_projection = BG.CUInt
+
+  toCEnum = Heif_omaf_image_projection
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_omaf_image_projection"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_omaf_image_projection_equirectangular")
+                                   , (1, BG.singleton "Heif_omaf_image_projection_cube_map")
+                                   , (255, BG.singleton "Heif_omaf_image_projection_flat")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_omaf_image_projection"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_omaf_image_projection"
+
+instance Show Heif_omaf_image_projection where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_omaf_image_projection where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_omaf_image_projection" Heif_omaf_image_projection ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_omaf_image_projection {unwrapHeif_omaf_image_projection = y1}
+      , BG.getField @"unwrapHeif_omaf_image_projection" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_omaf_image_projection" (BG.Ptr Heif_omaf_image_projection) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_omaf_image_projection")
+
+instance HasCField.HasCField Heif_omaf_image_projection "unwrapHeif_omaf_image_projection" where
+
+  type CFieldType Heif_omaf_image_projection "unwrapHeif_omaf_image_projection" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_omaf_image_projection_equirectangular@
+
+    __defined at:__ @libheif\/heif_omaf.h 54:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_omaf_image_projection_equirectangular :: Heif_omaf_image_projection
+pattern Heif_omaf_image_projection_equirectangular = Heif_omaf_image_projection 0
+
+{-| __C declaration:__ @heif_omaf_image_projection_cube_map@
+
+    __defined at:__ @libheif\/heif_omaf.h 59:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_omaf_image_projection_cube_map :: Heif_omaf_image_projection
+pattern Heif_omaf_image_projection_cube_map = Heif_omaf_image_projection 1
+
+{-| __C declaration:__ @heif_omaf_image_projection_flat@
+
+    __defined at:__ @libheif\/heif_omaf.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_omaf_image_projection_flat :: Heif_omaf_image_projection
+pattern Heif_omaf_image_projection_flat = Heif_omaf_image_projection 255
+
+-- __unique:__ @instance ToFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+foreign import ccall safe "wrapper" hs_bindgen_3afa1efa37aa74cc_base ::
+     (BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32)
+  -> IO (BG.FunPtr (BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32))
+
+-- __unique:__ @instance ToFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+hs_bindgen_3afa1efa37aa74cc ::
+     (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+  -> IO (BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status))
+hs_bindgen_3afa1efa37aa74cc =
+  \fun0 ->
+    fmap BG.castFunPtrFromFFIType (hs_bindgen_3afa1efa37aa74cc_base (BG.toFFIType fun0))
+
+-- __unique:__ @instance FromFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+foreign import ccall safe "dynamic" hs_bindgen_1b1da37f50011c80_base ::
+     BG.FunPtr (BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32)
+  -> BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32
+
+-- __unique:__ @instance FromFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+hs_bindgen_1b1da37f50011c80 ::
+     BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+  -> HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status
+hs_bindgen_1b1da37f50011c80 =
+  \funPtr0 ->
+    BG.fromFFIType (hs_bindgen_1b1da37f50011c80_base (BG.castFunPtrToFFIType funPtr0))
+
+instance BG.ToFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status) where
+
+  toFunPtr = hs_bindgen_3afa1efa37aa74cc
+
+instance BG.FromFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status) where
+
+  fromFunPtr = hs_bindgen_1b1da37f50011c80
diff --git a/src-native/Codec/HEIF/Bindings/Generated/FunPtr.hs b/src-native/Codec/HEIF/Bindings/Generated/FunPtr.hs
new file mode 100644
--- /dev/null
+++ b/src-native/Codec/HEIF/Bindings/Generated/FunPtr.hs
@@ -0,0 +1,8486 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.FunPtr
+    ( Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number_major
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number_minor
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number_maintenance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_string_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_init
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_deinit
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_load_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_load_plugins
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_unload_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_plugin_directories
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_free_plugin_directories
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_register_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_register_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_register_decoder
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_colorspace
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_chroma_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_primary_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_primary_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_crop
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_extract_area
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_bits_per_pixel_range
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_channel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane_readonly2
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane2
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_scale_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_extend_to_size_fill_with_zero
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_decoding_warnings
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_decoding_warning
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_create
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_plane
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_plane_safe
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_extend_padding_to_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_set_defaults
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_ext_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_ext_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_ext_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_set_color_primaries
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_set_transfer_characteristics
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_set_matrix_coefficients
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_mastering_display_colour_volume_decode
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_read_main_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_read_minor_version_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_fourcc_to_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_brand_to_fourcc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_has_compatible_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_list_compatible_brands
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_free_list_of_compatible_brands
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_file_mime_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_check_filetype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_has_compatible_filetype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_check_jpeg_filetype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_main_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_metadata_compression_method_supported
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_metadata_blocks
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_metadata_block_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_content_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_item_uri_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_exif_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_XMP_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_XMP_metadata2
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_generic_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_generic_uri_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_depth_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_depth_images
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_depth_image_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_depth_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_depth_representation_info_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_depth_image_representation_info
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_thumbnails
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_thumbnail_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_thumbnail
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_encode_thumbnail
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_assign_thumbnail
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_auxiliary_images
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_auxiliary_image_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_release_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_auxiliary_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_free_auxiliary_types
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_entity_groups
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_entity_groups_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_global_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_disabled_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_maximum_image_size_limit
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_file
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_memory
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_memory_without_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_reader
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_number_of_top_level_images
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_is_top_level_image_ID
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_list_of_top_level_image_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_primary_image_ID
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_primary_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_debug_dump_boxes_to_file
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_write_mini_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_write_to_file
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_write
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_have_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_get_compression_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supports_lossy_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supports_lossless_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_encoder
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_lossy_quality
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_lossless
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_logging_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_list_parameters
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_valid_integer_range
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_valid_integer_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_valid_string_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter_integer
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter_integer
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_integer_valid_range
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter_string
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter_string
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_string_valid_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_integer_valid_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_has_default
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_orientation_concat
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoding_options_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoding_options_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_encode_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_overlay_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_primary_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_major_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_compatible_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_unif
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supportes_lossy_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supportes_lossless_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_have_decoder_for_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoding_options_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoding_options_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_decoder_descriptors
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decode_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_is_primary_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_item_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_alpha_channel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_luma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_chroma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_preferred_decoding_colorspace
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_ispe_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_ispe_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_context
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_cmpd_components
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_cmpd_component_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_cmpd_component_type_uri
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_gimi_component_content_ids
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_image_tiling
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_grid_image_tile_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_decode_image_tile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_encode_grid
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_grid_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_image_tile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_number_of_used_components
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_channel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_components
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_component_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_component
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint16_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint16
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int8_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int8
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int16_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int16
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_omaf_image_projection
+    )
+  where
+
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.IsArray as IsA
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_c625d32f9024e570 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_6f0f2dc1ca16a761 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_major */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_49646ebce7736dc1 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number_major;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_minor */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_5efb9913a85458fc (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number_minor;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_maintenance */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_33900f1854455fa2 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number_maintenance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_string_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5023e7e36a2931fd (void)) ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_string_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_init */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c1b0d15e5fbf7459 (void)) ("
+  , "  heif_init_params *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_init;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_deinit */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_d7a636c1be26e18e (void)) (void)"
+  , "{"
+  , "  return &heif_deinit;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f0e89c0f64a2bfe9 (void)) ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_load_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugins */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_8667360af91ea736 (void)) ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  signed int *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_load_plugins;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_unload_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_d9c7cda5fa23d9da (void)) ("
+  , "  heif_plugin_info const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_unload_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_plugin_directories */"
+  , "__attribute__ ((const))"
+  , "char const *const *(*hs_bindgen_4b420f655c4b044f (void)) (void)"
+  , "{"
+  , "  return &heif_get_plugin_directories;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_plugin_directories */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c9dc77b0e04f1a94 (void)) ("
+  , "  char const *const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_free_plugin_directories;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f56aad029d61bb2f (void)) ("
+  , "  heif_decoder_plugin const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_register_decoder_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_encoder_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f9fa4387373140b1 (void)) ("
+  , "  heif_encoder_plugin const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_register_encoder_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c7c012cbd7e4135c (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_decoder_plugin const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_register_decoder;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_colorspace */"
+  , "__attribute__ ((const))"
+  , "heif_colorspace (*hs_bindgen_e073d67d79caf9cf (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_colorspace;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_chroma_format */"
+  , "__attribute__ ((const))"
+  , "heif_chroma (*hs_bindgen_c9aabf89051d1758 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_chroma_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_6e6e2b18117257e0 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_e4232c0e2e8deb5c (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ad0a46812ed66955 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_primary_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7eefbabd5f9b98b6 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_primary_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_crop */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_454755c015cd191e (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_crop;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extract_area */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_137ea4eb4c1dbebf (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_image **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_image_extract_area;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ab02493a34d79677 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel_range */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d2e302dd2ee8f950 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_bits_per_pixel_range;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_channel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_5b15857d396cae51 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_channel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly */"
+  , "__attribute__ ((const))"
+  , "uint8_t const *(*hs_bindgen_a293c99564ffbee1 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane */"
+  , "__attribute__ ((const))"
+  , "uint8_t *(*hs_bindgen_1e54091d31894195 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly2 */"
+  , "__attribute__ ((const))"
+  , "uint8_t const *(*hs_bindgen_3ac7ef05f949468d (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane_readonly2;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane2 */"
+  , "__attribute__ ((const))"
+  , "uint8_t *(*hs_bindgen_b3d879307b0ecfef (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane2;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_scale_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_91b44b593d8b2e0d (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_image **arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  heif_scaling_options const *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_scale_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_to_size_fill_with_zero */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_39581edbcefe9e11 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_extend_to_size_fill_with_zero;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_decoding_warnings */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_052f3910ccd5c18c (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_decoding_warnings;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_decoding_warning */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_77d12dd9eb75d762 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_error arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_decoding_warning;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e57b35874b9c2ef5 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_b5b62770d080f1eb (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5efdd32e4d856855 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_cc8120096e554016 (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_create */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e527bfc712439944 (void)) ("
+  , "  signed int arg1,"
+  , "  signed int arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_image **arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_create;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_bbfa602c16d0e115 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_plane;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane_safe */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_db45cbabffee2123 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_security_limits const *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_plane_safe;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_premultiplied_alpha */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5ca559cd3abef76b (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_premultiplied_alpha;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_is_premultiplied_alpha */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_dfd40ac51dd90bdf (void)) ("
+  , "  heif_image *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_is_premultiplied_alpha;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_padding_to_size */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9fb9a1c5713d955a (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_extend_padding_to_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_set_defaults */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_6f16968893d84864 (void)) ("
+  , "  heif_color_conversion_options *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_color_conversion_options_set_defaults;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_color_conversion_options_ext *(*hs_bindgen_64bcbbba230b33f1 (void)) (void)"
+  , "{"
+  , "  return &heif_color_conversion_options_ext_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_copy */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_9f16886e93804ee2 (void)) ("
+  , "  heif_color_conversion_options_ext *arg1,"
+  , "  heif_color_conversion_options_ext const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_color_conversion_options_ext_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_2711d46fed5cbeb2 (void)) ("
+  , "  heif_color_conversion_options_ext *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_color_conversion_options_ext_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_color_profile_type */"
+  , "__attribute__ ((const))"
+  , "heif_color_profile_type (*hs_bindgen_e64f44dae6e663ed (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_color_profile_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile_size */"
+  , "__attribute__ ((const))"
+  , "size_t (*hs_bindgen_ed69fd2400ee84ba (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_raw_color_profile_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile */"
+  , "__attribute__ ((const))"
+  , "struct heif_error (*hs_bindgen_d8c99aa8c6e5a830 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  void *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_raw_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_color_primaries */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_4614c65e54f21413 (void)) ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_set_color_primaries;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_transfer_characteristics */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_116e28f3db0d4120 (void)) ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_set_transfer_characteristics;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_matrix_coefficients */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_19c22d40dc00a9c9 (void)) ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_set_matrix_coefficients;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nclx_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_b3b5fb2096a6f40b (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_color_profile_nclx **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_nclx_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_color_profile_nclx *(*hs_bindgen_a20e40e2206679a9 (void)) (void)"
+  , "{"
+  , "  return &heif_nclx_color_profile_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_699d69b45a1cb468 (void)) ("
+  , "  heif_color_profile_nclx *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_color_profile_type */"
+  , "__attribute__ ((const))"
+  , "heif_color_profile_type (*hs_bindgen_409cc3435b1a7e31 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_color_profile_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile_size */"
+  , "__attribute__ ((const))"
+  , "size_t (*hs_bindgen_2723d50c493f3f61 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_raw_color_profile_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e92550f12c6d8fb0 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  void *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_raw_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nclx_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_0988df78a76b5973 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_color_profile_nclx **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_nclx_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_raw_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_1cbc106cb4bd0c43 (void)) ("
+  , "  heif_image *arg1,"
+  , "  char const *arg2,"
+  , "  void const *arg3,"
+  , "  size_t const arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_raw_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nclx_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7aa510c633572c35 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_color_profile_nclx const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_nclx_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_content_light_level */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_db973d1a2a00a405 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_content_light_level */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ff42d34b21f3a2ce (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_content_light_level */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_530d71005a426553 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_content_light_level */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_5d0d43fee97f75e5 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_content_light_level */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_2c51fa25a85ab816 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_content_light_level */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_75e4bb9edfe7cd9f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_46bc79c600610be0 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_504e9917f645ef88 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_4a2fb9e8f85d6de1 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_95d43adae491456f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_290787e53e2b60b6 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5fe4f8ca0e66f87f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_80383eae4f658d98 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d98bfd626a7d6830 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d77001407b8f6d06 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_23814d0fca44d5da (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_71575ae4017a355d (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c312bdda2671ccdc (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_e7d75561cc58be41 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_ac6ca5887cc19e74 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_3a5d53bf827d8580 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_8478e7753942715a (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_c20c28632ce30863 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_101384e10d3eb9f6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_mastering_display_colour_volume_decode */"
+  , "__attribute__ ((const))"
+  , "struct heif_error (*hs_bindgen_bd18c4f597c6733a (void)) ("
+  , "  heif_mastering_display_colour_volume const *arg1,"
+  , "  heif_decoded_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_mastering_display_colour_volume_decode;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_main_brand */"
+  , "__attribute__ ((const))"
+  , "heif_brand2 (*hs_bindgen_2d53f48e29c79962 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_read_main_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_minor_version_brand */"
+  , "__attribute__ ((const))"
+  , "heif_brand2 (*hs_bindgen_d44a12ee72bb9c2e (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_read_minor_version_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_fourcc_to_brand */"
+  , "__attribute__ ((const))"
+  , "heif_brand2 (*hs_bindgen_a65b895080eaa5da (void)) ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_fourcc_to_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_brand_to_fourcc */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_b67f7ec53fb11880 (void)) ("
+  , "  heif_brand2 arg1,"
+  , "  char *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_brand_to_fourcc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_brand */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_156cb2560432b078 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_has_compatible_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_list_compatible_brands */"
+  , "__attribute__ ((const))"
+  , "struct heif_error (*hs_bindgen_b8599f182b75ac09 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_brand2 **arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_list_compatible_brands;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_list_of_compatible_brands */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_58abda0a8161661e (void)) ("
+  , "  heif_brand2 *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_free_list_of_compatible_brands;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_file_mime_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_c28ed4b8a33c8c55 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_get_file_mime_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_filetype */"
+  , "__attribute__ ((const))"
+  , "enum heif_filetype_result (*hs_bindgen_0fe4c4f41f0c7dc4 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_check_filetype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_filetype */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_d4d9d9d8a49ecb76 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_has_compatible_filetype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_jpeg_filetype */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_772865916a7ca5b0 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_check_jpeg_filetype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_main_brand */"
+  , "__attribute__ ((const))"
+  , "enum heif_brand (*hs_bindgen_88607fe3b227821c (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_main_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_metadata_compression_method_supported */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_bc74e7adb57c426e (void)) ("
+  , "  enum heif_metadata_compression arg1"
+  , ")"
+  , "{"
+  , "  return &heif_metadata_compression_method_supported;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_metadata_blocks */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_e0549656d912a02f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_metadata_blocks;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_metadata_block_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7704c832da7f6498 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_metadata_block_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_6a47d662d02a1849 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_content_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_ff3375cb079c2c8c (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_content_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_size */"
+  , "__attribute__ ((const))"
+  , "size_t (*hs_bindgen_8f416d9d0b388a20 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f28b5d476cc0344d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  void *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_item_uri_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_3de552206e29c05d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_item_uri_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_exif_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_5a7514f5b16eac4c (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_exif_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_3a07a46632c07914 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_XMP_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata2 */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_a68d252d2c832294 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  enum heif_metadata_compression arg5"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_XMP_metadata2;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_619dad01eb9c6d46 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  char const *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_generic_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_uri_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_58d33e372b6c6eae (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  heif_item_id *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_generic_uri_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_depth_image */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3cd06e15607887df (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_depth_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_depth_images */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_aa3619e2616c31b9 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_depth_images;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_depth_image_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_c7753ca6962a462d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_depth_image_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c1ab9b65fc984e98 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_depth_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_depth_representation_info_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_bfa498ceb1f388eb (void)) ("
+  , "  heif_depth_representation_info const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_depth_representation_info_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_representation_info */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_f7def4edb675f3a7 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_depth_representation_info const **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_depth_image_representation_info;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_thumbnails */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_388a83c522945b96 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_thumbnails;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_thumbnail_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_c9977cfc42d63a17 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_thumbnail_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_thumbnail */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7b4335dfc28e8e80 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_thumbnail;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_thumbnail */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_492f9a0d3f555649 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_encoder *arg4,"
+  , "  heif_encoding_options const *arg5,"
+  , "  signed int arg6,"
+  , "  heif_image_handle **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_context_encode_thumbnail;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_assign_thumbnail */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_d6beebdf16f8801e (void)) ("
+  , "  struct heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  heif_image_handle const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_assign_thumbnail;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_auxiliary_images */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_fbf5259f8601a805 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_auxiliary_images;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_auxiliary_image_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_52a5c3a1d8bf248a (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_auxiliary_image_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_type */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_2806604f6185b8f8 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_auxiliary_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release_auxiliary_type */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c6d7022e030cb190 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_release_auxiliary_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_3d5ece2e0e4e63a9 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_auxiliary_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_free_auxiliary_types */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e653c638946083c6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_free_auxiliary_types;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_entity_groups */"
+  , "__attribute__ ((const))"
+  , "heif_entity_group *(*hs_bindgen_631e87ff99030866 (void)) ("
+  , "  heif_context const *arg1,"
+  , "  uint32_t arg2,"
+  , "  heif_item_id arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_entity_groups;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_entity_groups_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_dff5ea5157033446 (void)) ("
+  , "  heif_entity_group *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_entity_groups_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_global_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_security_limits const *(*hs_bindgen_513834deee887311 (void)) (void)"
+  , "{"
+  , "  return &heif_get_global_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_disabled_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_security_limits const *(*hs_bindgen_9841ea4e972c1a98 (void)) (void)"
+  , "{"
+  , "  return &heif_get_disabled_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_security_limits *(*hs_bindgen_79af356ea84ef299 (void)) ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_79e7cc69a856ca88 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_security_limits const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_maximum_image_size_limit */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_70c7f35fa6d1722f (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_maximum_image_size_limit;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_context *(*hs_bindgen_bd908a73a9cd1c97 (void)) (void)"
+  , "{"
+  , "  return &heif_context_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_7e7ac4562d12dc38 (void)) ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_file */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7b3d06c1227d3049 (void)) ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_reading_options const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_file;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_fd7f2a7e1900e79b (void)) ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_memory;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory_without_copy */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_ead5dd2b26474984 (void)) ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_memory_without_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_reader */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_46205cdd2b194712 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_reader const *arg2,"
+  , "  void *arg3,"
+  , "  heif_reading_options const *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_reader;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_number_of_top_level_images */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7d9f8f6a11d1d0b3 (void)) ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_number_of_top_level_images;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_is_top_level_image_ID */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_8c9ac942d92215db (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_is_top_level_image_ID;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_list_of_top_level_image_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_8300165269c133fb (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_list_of_top_level_image_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_ID */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_0d98fd3ca84ab54a (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_primary_image_ID;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_960524c654a2bcef (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_primary_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_398d616a73d2c66e (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_debug_dump_boxes_to_file */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_8a216f7524a20aca (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_debug_dump_boxes_to_file;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_write_mini_format */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_15394ba4caf334ce (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_write_mini_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write_to_file */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f73779d349ac09bf (void)) ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_write_to_file;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c9c017704fa40d19 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_writer *arg2,"
+  , "  void *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_write;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_encoder_for_format */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_19218fb783c96539 (void)) ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return &heif_have_encoder_for_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_encoder_descriptors */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_49fc5cfaef4436f7 (void)) ("
+  , "  heif_compression_format arg1,"
+  , "  char const *arg2,"
+  , "  heif_encoder_descriptor const **arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_get_encoder_descriptors;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_cddd49c618fa6467 (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_id_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_08451a95e7fb6e4d (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_get_id_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_compression_format */"
+  , "__attribute__ ((const))"
+  , "heif_compression_format (*hs_bindgen_e5339b28bc83fbca (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_get_compression_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossy_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7ad6908eba03875a (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supports_lossy_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossless_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ae06a426df892191 (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supports_lossless_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_007a504ee5520689 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_encoder_descriptor const *arg2,"
+  , "  heif_encoder **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_encoder;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_for_format */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9f20d0bc6d1e9792 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  heif_encoder **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_encoder_for_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e2c3d8f3b52f1fe3 (void)) ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_ee9152d12b81ac2d (void)) ("
+  , "  heif_encoder const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossy_quality */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_19895ed41764990f (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_lossy_quality;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossless */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9c9779dea220b374 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_lossless;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_logging_level */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_964eca1706d5e05d (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_logging_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_list_parameters */"
+  , "__attribute__ ((const))"
+  , "heif_encoder_parameter const *const *(*hs_bindgen_b1199cd8648209be (void)) ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_list_parameters;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_d6e627b5fca93233 (void)) ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_type */"
+  , "__attribute__ ((const))"
+  , "enum heif_encoder_parameter_type (*hs_bindgen_980079513f87c118 (void)) ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_range */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_6a3070253dfc382e (void)) ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_valid_integer_range;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_067b5b207b483c5d (void)) ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int const **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_valid_integer_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_string_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_4402c7b710a2e293 (void)) ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  char const *const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_valid_string_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_integer */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e8b5b676e57560d7 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter_integer;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_integer */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c44ab08992218d13 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter_integer;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_range */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9598d3b74fd783cb (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_integer_valid_range;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_boolean */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7db9099ac6d6f5b1 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter_boolean;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_boolean */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9f1955202d334a10 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter_boolean;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_string */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_b2607e571c92a618 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter_string;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_string */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_a95cafa3230d5da7 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter_string;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_string_valid_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_ba4465c08b4cf0a2 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *const **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_string_valid_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_623e45d55c671d82 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int *arg7,"
+  , "  signed int const **arg8"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_integer_valid_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_bd86a80de889a4f4 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_72101d51afa9609b (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_has_default */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_26a34da2ac618ec0 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_has_default;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_orientation_concat */"
+  , "__attribute__ ((const))"
+  , "heif_orientation (*hs_bindgen_c0dd2a0c657131aa (void)) ("
+  , "  heif_orientation arg1,"
+  , "  heif_orientation arg2"
+  , ")"
+  , "{"
+  , "  return &heif_orientation_concat;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_encoding_options *(*hs_bindgen_28dbaae103570ff4 (void)) (void)"
+  , "{"
+  , "  return &heif_encoding_options_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_copy */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e7b5455adebcef43 (void)) ("
+  , "  heif_encoding_options *arg1,"
+  , "  heif_encoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoding_options_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_787984e1e413ead9 (void)) ("
+  , "  heif_encoding_options *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoding_options_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_610d77f41f92fba0 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_encoder *arg3,"
+  , "  heif_encoding_options const *arg4,"
+  , "  heif_image_handle **arg5"
+  , ")"
+  , "{"
+  , "  return &heif_context_encode_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_overlay_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_b136dae560c28087 (void)) ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_item_id const *arg5,"
+  , "  int32_t *arg6,"
+  , "  uint16_t const *arg7,"
+  , "  heif_image_handle **arg8"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_overlay_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_primary_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_82f06b9fbe305204 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_primary_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_major_brand */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_4f09902dfe4716a2 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_major_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_compatible_brand */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c7a3ced56fa71bcc (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_compatible_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_unif */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_540033bf7a81642b (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_unif;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossy_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_2e1af2c079c4bdcb (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supportes_lossy_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossless_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_0872f4049dc6adda (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supportes_lossless_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_descriptors */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_2fc974173395e821 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  char const *arg3,"
+  , "  heif_encoder_descriptor const **arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_encoder_descriptors;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_max_decoding_threads */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5e62b65c99d23407 (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_max_decoding_threads;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_max_decoding_threads */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3b4e8316def8a237 (void)) ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_max_decoding_threads;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_decoder_for_format */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3daa6cca356665b6 (void)) ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return &heif_have_decoder_for_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_decoding_options *(*hs_bindgen_9a50b249bd540166 (void)) (void)"
+  , "{"
+  , "  return &heif_decoding_options_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_copy */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_32da465efe73fcdb (void)) ("
+  , "  heif_decoding_options *arg1,"
+  , "  heif_decoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_decoding_options_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_52712d76ab537988 (void)) ("
+  , "  heif_decoding_options *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_decoding_options_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_decoder_descriptors */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_0f017f38829ac8dd (void)) ("
+  , "  heif_compression_format arg1,"
+  , "  heif_decoder_descriptor const **arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_get_decoder_descriptors;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_3db1040f1533c36e (void)) ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_decoder_descriptor_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_id_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_7b37485a305012c6 (void)) ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_decoder_descriptor_get_id_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decode_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_979d124ef42ec5cf (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_decode_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_f5cb46c43b851a0a (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_primary_image */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_9d6025e4141c8268 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_is_primary_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_item_id */"
+  , "__attribute__ ((const))"
+  , "heif_item_id (*hs_bindgen_4f10cdca13968c49 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_item_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_fe94688c878539a4 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3b679516a521f7e3 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_alpha_channel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_4a7731dc45dcb737 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_alpha_channel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_premultiplied_alpha */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_59754eef2ee882b9 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_is_premultiplied_alpha;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_luma_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_f9d7480524d63f18 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_luma_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_chroma_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_bb5d1684ae3d8627 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_chroma_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_preferred_decoding_colorspace */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_4494944c3b2862bd (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_colorspace *arg2,"
+  , "  heif_chroma *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_preferred_decoding_colorspace;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d49b3c605c71337e (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_ispe_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_2162a39f4c12630b (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_ispe_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_723ac84409ddbfbf (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_context */"
+  , "__attribute__ ((const))"
+  , "heif_context *(*hs_bindgen_a4854bf4bce1329e (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_context;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_content_id */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_ec464a481e6bf7eb (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_gimi_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_content_id */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_45b87b154ffab31e (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_gimi_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_cmpd_components */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_3f1f496bd459f7d1 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_cmpd_components;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type */"
+  , "__attribute__ ((const))"
+  , "uint16_t (*hs_bindgen_30689ff6fff118a6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_cmpd_component_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type_uri */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_e8528f21f6d1c6e1 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_cmpd_component_type_uri;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_gimi_component_content_ids */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_cd11e257d97813a3 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_gimi_component_content_ids;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_component_content_id */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_82b03ca2c8baca6c (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_gimi_component_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_component_content_id */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_8e6048a2e91cf20b (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_gimi_component_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_image_tiling */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c72c6e6de065492e (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  struct heif_image_tiling *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_image_tiling;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_grid_image_tile_id */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_dbdaf29e829a9876 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_item_id *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_grid_image_tile_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_decode_image_tile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_699735c377474463 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  uint32_t arg6,"
+  , "  uint32_t arg7"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_decode_image_tile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_grid */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7caea6543ead81e2 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image **arg2,"
+  , "  uint16_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_encoder *arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_context_encode_grid;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_grid_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_2cce0ce4f2f029a8 (void)) ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_grid_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_image_tile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_65b0546b14ab11ca (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_image const *arg5,"
+  , "  heif_encoder *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_image_tile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_number_of_used_components */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_cccb6b24e80c7598 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_number_of_used_components;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_used_component_ids */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_b2a27aa5ab429ee9 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_used_component_ids;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_channel */"
+  , "__attribute__ ((const))"
+  , "heif_channel (*hs_bindgen_51621589bc6d7870 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_channel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_width */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_844ddc17a3c931b4 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_height */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_1fa307e24407a0f7 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_fa65f60ea3112425 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_type */"
+  , "__attribute__ ((const))"
+  , "uint16_t (*hs_bindgen_500397f4997a0fa4 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_datatype */"
+  , "__attribute__ ((const))"
+  , "heif_component_datatype (*hs_bindgen_b3718485664aa5c1 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_datatype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_components */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_313b35060d1e5135 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_components;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_used_component_ids */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_3d6d506be66d3a5d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_used_component_ids;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_type */"
+  , "__attribute__ ((const))"
+  , "uint16_t (*hs_bindgen_2a9b81acde526f2f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_component_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7114af07e418dc15 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_component_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_datatype */"
+  , "__attribute__ ((const))"
+  , "heif_component_datatype (*hs_bindgen_37ac5fdd4a5313c6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_component_datatype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_component */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_1fdd576f0a532dd8 (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_component_datatype arg5,"
+  , "  signed int arg6,"
+  , "  uint32_t *arg7"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_component;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_readonly */"
+  , "__attribute__ ((const))"
+  , "uint8_t const *(*hs_bindgen_b887cc6f13914d9f (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component */"
+  , "__attribute__ ((const))"
+  , "uint8_t *(*hs_bindgen_d0fb2e8c6b555a5f (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16_readonly */"
+  , "__attribute__ ((const))"
+  , "uint16_t const *(*hs_bindgen_f2584f6738c6a3ea (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint16_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16 */"
+  , "__attribute__ ((const))"
+  , "uint16_t *(*hs_bindgen_e7308ea5505ed9aa (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint16;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32_readonly */"
+  , "__attribute__ ((const))"
+  , "uint32_t const *(*hs_bindgen_1df9b5a9909389e5 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32 */"
+  , "__attribute__ ((const))"
+  , "uint32_t *(*hs_bindgen_c256aea9f44c576a (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64_readonly */"
+  , "__attribute__ ((const))"
+  , "uint64_t const *(*hs_bindgen_49af5aabed64b179 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64 */"
+  , "__attribute__ ((const))"
+  , "uint64_t *(*hs_bindgen_c68cd4eb77fcda90 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8_readonly */"
+  , "__attribute__ ((const))"
+  , "int8_t const *(*hs_bindgen_430e6a5279a8eb49 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int8_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8 */"
+  , "__attribute__ ((const))"
+  , "int8_t *(*hs_bindgen_2405d11fd23fb924 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int8;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16_readonly */"
+  , "__attribute__ ((const))"
+  , "int16_t const *(*hs_bindgen_c938737756603ecb (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int16_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16 */"
+  , "__attribute__ ((const))"
+  , "int16_t *(*hs_bindgen_4bd5f9edeeb4a65f (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int16;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32_readonly */"
+  , "__attribute__ ((const))"
+  , "int32_t const *(*hs_bindgen_cd7e0a4240e9ab65 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32 */"
+  , "__attribute__ ((const))"
+  , "int32_t *(*hs_bindgen_8e14a238fb4bdb2f (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64_readonly */"
+  , "__attribute__ ((const))"
+  , "int64_t const *(*hs_bindgen_8208ed7cda7cd335 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64 */"
+  , "__attribute__ ((const))"
+  , "int64_t *(*hs_bindgen_845006cd5c3d5175 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32_readonly */"
+  , "__attribute__ ((const))"
+  , "float const *(*hs_bindgen_a342a573d33f4eef (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32 */"
+  , "__attribute__ ((const))"
+  , "float *(*hs_bindgen_1d22608c8fd3d1cd (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64_readonly */"
+  , "__attribute__ ((const))"
+  , "double const *(*hs_bindgen_9a6ea0b8cce5e1a4 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64 */"
+  , "__attribute__ ((const))"
+  , "double *(*hs_bindgen_8964541966e9204e (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32_readonly */"
+  , "__attribute__ ((const))"
+  , "heif_complex32 const *(*hs_bindgen_11476314a2836a53 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32 */"
+  , "__attribute__ ((const))"
+  , "heif_complex32 *(*hs_bindgen_66fc2cecd8106650 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64_readonly */"
+  , "__attribute__ ((const))"
+  , "heif_complex64 const *(*hs_bindgen_d60d5ecfd6455d28 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64 */"
+  , "__attribute__ ((const))"
+  , "heif_complex64 *(*hs_bindgen_e96e94fa783df07c (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_gimi_component_content_id */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e51068abbd490a0e (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_gimi_component_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "heif_omaf_image_projection (*hs_bindgen_0f97f63c89f3cfea (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_omaf_image_projection;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_6fbccb1e4f1b88f8 (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_omaf_image_projection;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "heif_omaf_image_projection (*hs_bindgen_c3044c458d0dafed (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_omaf_image_projection;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c9668dd5bc64b2fe (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_omaf_image_projection;"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version@
+foreign import ccall unsafe "hs_bindgen_c625d32f9024e570" hs_bindgen_c625d32f9024e570_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version@
+hs_bindgen_c625d32f9024e570 :: IO (BG.FunPtr (IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_c625d32f9024e570 =
+  BG.fromFFIType hs_bindgen_c625d32f9024e570_base
+
+{-# NOINLINE heif_get_version #-}
+{-| __C declaration:__ @heif_get_version@
+
+    __defined at:__ @libheif\/heif_library.h 72:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version :: BG.FunPtr (IO (PtrConst.PtrConst BG.CChar))
+heif_get_version =
+  BG.unsafePerformIO hs_bindgen_c625d32f9024e570
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number@
+foreign import ccall unsafe "hs_bindgen_6f0f2dc1ca16a761" hs_bindgen_6f0f2dc1ca16a761_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number@
+hs_bindgen_6f0f2dc1ca16a761 :: IO (BG.FunPtr (IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_6f0f2dc1ca16a761 =
+  BG.fromFFIType hs_bindgen_6f0f2dc1ca16a761_base
+
+{-# NOINLINE heif_get_version_number #-}
+{-| __C declaration:__ @heif_get_version_number@
+
+    __defined at:__ @libheif\/heif_library.h 76:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number :: BG.FunPtr (IO HsBindgen.Runtime.LibC.Word32)
+heif_get_version_number =
+  BG.unsafePerformIO hs_bindgen_6f0f2dc1ca16a761
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_major@
+foreign import ccall unsafe "hs_bindgen_49646ebce7736dc1" hs_bindgen_49646ebce7736dc1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_major@
+hs_bindgen_49646ebce7736dc1 :: IO (BG.FunPtr (IO BG.CInt))
+hs_bindgen_49646ebce7736dc1 =
+  BG.fromFFIType hs_bindgen_49646ebce7736dc1_base
+
+{-# NOINLINE heif_get_version_number_major #-}
+{-| __C declaration:__ @heif_get_version_number_major@
+
+    __defined at:__ @libheif\/heif_library.h 79:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_major :: BG.FunPtr (IO BG.CInt)
+heif_get_version_number_major =
+  BG.unsafePerformIO hs_bindgen_49646ebce7736dc1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_minor@
+foreign import ccall unsafe "hs_bindgen_5efb9913a85458fc" hs_bindgen_5efb9913a85458fc_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_minor@
+hs_bindgen_5efb9913a85458fc :: IO (BG.FunPtr (IO BG.CInt))
+hs_bindgen_5efb9913a85458fc =
+  BG.fromFFIType hs_bindgen_5efb9913a85458fc_base
+
+{-# NOINLINE heif_get_version_number_minor #-}
+{-| __C declaration:__ @heif_get_version_number_minor@
+
+    __defined at:__ @libheif\/heif_library.h 81:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_minor :: BG.FunPtr (IO BG.CInt)
+heif_get_version_number_minor =
+  BG.unsafePerformIO hs_bindgen_5efb9913a85458fc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_maintenance@
+foreign import ccall unsafe "hs_bindgen_33900f1854455fa2" hs_bindgen_33900f1854455fa2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_maintenance@
+hs_bindgen_33900f1854455fa2 :: IO (BG.FunPtr (IO BG.CInt))
+hs_bindgen_33900f1854455fa2 =
+  BG.fromFFIType hs_bindgen_33900f1854455fa2_base
+
+{-# NOINLINE heif_get_version_number_maintenance #-}
+{-| __C declaration:__ @heif_get_version_number_maintenance@
+
+    __defined at:__ @libheif\/heif_library.h 83:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_maintenance :: BG.FunPtr (IO BG.CInt)
+heif_get_version_number_maintenance =
+  BG.unsafePerformIO hs_bindgen_33900f1854455fa2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_string_release@
+foreign import ccall unsafe "hs_bindgen_5023e7e36a2931fd" hs_bindgen_5023e7e36a2931fd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_string_release@
+hs_bindgen_5023e7e36a2931fd :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ()))
+hs_bindgen_5023e7e36a2931fd =
+  BG.fromFFIType hs_bindgen_5023e7e36a2931fd_base
+
+{-# NOINLINE heif_string_release #-}
+{-| __C declaration:__ @heif_string_release@
+
+    __defined at:__ @libheif\/heif_library.h 100:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_string_release :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+heif_string_release =
+  BG.unsafePerformIO hs_bindgen_5023e7e36a2931fd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_init@
+foreign import ccall unsafe "hs_bindgen_c1b0d15e5fbf7459" hs_bindgen_c1b0d15e5fbf7459_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_init@
+hs_bindgen_c1b0d15e5fbf7459 :: IO (BG.FunPtr (BG.Ptr Heif_init_params -> IO Heif_error))
+hs_bindgen_c1b0d15e5fbf7459 =
+  BG.fromFFIType hs_bindgen_c1b0d15e5fbf7459_base
+
+{-# NOINLINE heif_init #-}
+{-| __C declaration:__ @heif_init@
+
+    __defined at:__ @libheif\/heif_library.h 133:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_init :: BG.FunPtr (BG.Ptr Heif_init_params -> IO Heif_error)
+heif_init =
+  BG.unsafePerformIO hs_bindgen_c1b0d15e5fbf7459
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_deinit@
+foreign import ccall unsafe "hs_bindgen_d7a636c1be26e18e" hs_bindgen_d7a636c1be26e18e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_deinit@
+hs_bindgen_d7a636c1be26e18e :: IO (BG.FunPtr (IO ()))
+hs_bindgen_d7a636c1be26e18e =
+  BG.fromFFIType hs_bindgen_d7a636c1be26e18e_base
+
+{-# NOINLINE heif_deinit #-}
+{-| __C declaration:__ @heif_deinit@
+
+    __defined at:__ @libheif\/heif_library.h 148:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_deinit :: BG.FunPtr (IO ())
+heif_deinit =
+  BG.unsafePerformIO hs_bindgen_d7a636c1be26e18e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugin@
+foreign import ccall unsafe "hs_bindgen_f0e89c0f64a2bfe9" hs_bindgen_f0e89c0f64a2bfe9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugin@
+hs_bindgen_f0e89c0f64a2bfe9 :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> IO Heif_error))
+hs_bindgen_f0e89c0f64a2bfe9 =
+  BG.fromFFIType hs_bindgen_f0e89c0f64a2bfe9_base
+
+{-# NOINLINE heif_load_plugin #-}
+{-| __C declaration:__ @heif_load_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 170:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugin :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> IO Heif_error)
+heif_load_plugin =
+  BG.unsafePerformIO hs_bindgen_f0e89c0f64a2bfe9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugins@
+foreign import ccall unsafe "hs_bindgen_8667360af91ea736" hs_bindgen_8667360af91ea736_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugins@
+hs_bindgen_8667360af91ea736 :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> BG.Ptr BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_8667360af91ea736 =
+  BG.fromFFIType hs_bindgen_8667360af91ea736_base
+
+{-# NOINLINE heif_load_plugins #-}
+{-| __C declaration:__ @heif_load_plugins@
+
+    __defined at:__ @libheif\/heif_library.h 173:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugins :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> BG.Ptr BG.CInt -> BG.CInt -> IO Heif_error)
+heif_load_plugins =
+  BG.unsafePerformIO hs_bindgen_8667360af91ea736
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_unload_plugin@
+foreign import ccall unsafe "hs_bindgen_d9c7cda5fa23d9da" hs_bindgen_d9c7cda5fa23d9da_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_unload_plugin@
+hs_bindgen_d9c7cda5fa23d9da :: IO (BG.FunPtr (PtrConst.PtrConst Heif_plugin_info -> IO Heif_error))
+hs_bindgen_d9c7cda5fa23d9da =
+  BG.fromFFIType hs_bindgen_d9c7cda5fa23d9da_base
+
+{-# NOINLINE heif_unload_plugin #-}
+{-| __C declaration:__ @heif_unload_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 179:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_unload_plugin :: BG.FunPtr (PtrConst.PtrConst Heif_plugin_info -> IO Heif_error)
+heif_unload_plugin =
+  BG.unsafePerformIO hs_bindgen_d9c7cda5fa23d9da
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_4b420f655c4b044f" hs_bindgen_4b420f655c4b044f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_plugin_directories@
+hs_bindgen_4b420f655c4b044f :: IO (BG.FunPtr (IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))))
+hs_bindgen_4b420f655c4b044f =
+  BG.fromFFIType hs_bindgen_4b420f655c4b044f_base
+
+{-# NOINLINE heif_get_plugin_directories #-}
+{-| __C declaration:__ @heif_get_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 185:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_plugin_directories :: BG.FunPtr (IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)))
+heif_get_plugin_directories =
+  BG.unsafePerformIO hs_bindgen_4b420f655c4b044f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_c9dc77b0e04f1a94" hs_bindgen_c9dc77b0e04f1a94_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_plugin_directories@
+hs_bindgen_c9dc77b0e04f1a94 :: IO (BG.FunPtr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar) -> IO ()))
+hs_bindgen_c9dc77b0e04f1a94 =
+  BG.fromFFIType hs_bindgen_c9dc77b0e04f1a94_base
+
+{-# NOINLINE heif_free_plugin_directories #-}
+{-| __C declaration:__ @heif_free_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 188:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_plugin_directories :: BG.FunPtr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar) -> IO ())
+heif_free_plugin_directories =
+  BG.unsafePerformIO hs_bindgen_c9dc77b0e04f1a94
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder_plugin@
+foreign import ccall unsafe "hs_bindgen_f56aad029d61bb2f" hs_bindgen_f56aad029d61bb2f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder_plugin@
+hs_bindgen_f56aad029d61bb2f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error))
+hs_bindgen_f56aad029d61bb2f =
+  BG.fromFFIType hs_bindgen_f56aad029d61bb2f_base
+
+{-# NOINLINE heif_register_decoder_plugin #-}
+{-| __C declaration:__ @heif_register_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder_plugin :: BG.FunPtr (PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error)
+heif_register_decoder_plugin =
+  BG.unsafePerformIO hs_bindgen_f56aad029d61bb2f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_encoder_plugin@
+foreign import ccall unsafe "hs_bindgen_f9fa4387373140b1" hs_bindgen_f9fa4387373140b1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_encoder_plugin@
+hs_bindgen_f9fa4387373140b1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_plugin -> IO Heif_error))
+hs_bindgen_f9fa4387373140b1 =
+  BG.fromFFIType hs_bindgen_f9fa4387373140b1_base
+
+{-# NOINLINE heif_register_encoder_plugin #-}
+{-| __C declaration:__ @heif_register_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 200:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_encoder_plugin :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_plugin -> IO Heif_error)
+heif_register_encoder_plugin =
+  BG.unsafePerformIO hs_bindgen_f9fa4387373140b1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder@
+foreign import ccall unsafe "hs_bindgen_c7c012cbd7e4135c" hs_bindgen_c7c012cbd7e4135c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder@
+hs_bindgen_c7c012cbd7e4135c :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error))
+hs_bindgen_c7c012cbd7e4135c =
+  BG.fromFFIType hs_bindgen_c7c012cbd7e4135c_base
+
+{-# NOINLINE heif_register_decoder #-}
+{-| __C declaration:__ @heif_register_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 205:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error)
+heif_register_decoder =
+  BG.unsafePerformIO hs_bindgen_c7c012cbd7e4135c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_colorspace@
+foreign import ccall unsafe "hs_bindgen_e073d67d79caf9cf" hs_bindgen_e073d67d79caf9cf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_colorspace@
+hs_bindgen_e073d67d79caf9cf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_colorspace))
+hs_bindgen_e073d67d79caf9cf =
+  BG.fromFFIType hs_bindgen_e073d67d79caf9cf_base
+
+{-# NOINLINE heif_image_get_colorspace #-}
+{-| __C declaration:__ @heif_image_get_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 150:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_colorspace :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_colorspace)
+heif_image_get_colorspace =
+  BG.unsafePerformIO hs_bindgen_e073d67d79caf9cf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_chroma_format@
+foreign import ccall unsafe "hs_bindgen_c9aabf89051d1758" hs_bindgen_c9aabf89051d1758_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_chroma_format@
+hs_bindgen_c9aabf89051d1758 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_chroma))
+hs_bindgen_c9aabf89051d1758 =
+  BG.fromFFIType hs_bindgen_c9aabf89051d1758_base
+
+{-# NOINLINE heif_image_get_chroma_format #-}
+{-| __C declaration:__ @heif_image_get_chroma_format@
+
+    __defined at:__ @libheif\/heif_image.h 154:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_chroma_format :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_chroma)
+heif_image_get_chroma_format =
+  BG.unsafePerformIO hs_bindgen_c9aabf89051d1758
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_width@
+foreign import ccall unsafe "hs_bindgen_6e6e2b18117257e0" hs_bindgen_6e6e2b18117257e0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_width@
+hs_bindgen_6e6e2b18117257e0 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_6e6e2b18117257e0 =
+  BG.fromFFIType hs_bindgen_6e6e2b18117257e0_base
+
+{-# NOINLINE heif_image_get_width #-}
+{-| __C declaration:__ @heif_image_get_width@
+
+    __defined at:__ @libheif\/heif_image.h 164:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_width :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_width =
+  BG.unsafePerformIO hs_bindgen_6e6e2b18117257e0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_height@
+foreign import ccall unsafe "hs_bindgen_e4232c0e2e8deb5c" hs_bindgen_e4232c0e2e8deb5c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_height@
+hs_bindgen_e4232c0e2e8deb5c :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_e4232c0e2e8deb5c =
+  BG.fromFFIType hs_bindgen_e4232c0e2e8deb5c_base
+
+{-# NOINLINE heif_image_get_height #-}
+{-| __C declaration:__ @heif_image_get_height@
+
+    __defined at:__ @libheif\/heif_image.h 174:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_height :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_height =
+  BG.unsafePerformIO hs_bindgen_e4232c0e2e8deb5c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_width@
+foreign import ccall unsafe "hs_bindgen_ad0a46812ed66955" hs_bindgen_ad0a46812ed66955_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_width@
+hs_bindgen_ad0a46812ed66955 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_ad0a46812ed66955 =
+  BG.fromFFIType hs_bindgen_ad0a46812ed66955_base
+
+{-# NOINLINE heif_image_get_primary_width #-}
+{-| __C declaration:__ @heif_image_get_primary_width@
+
+    __defined at:__ @libheif\/heif_image.h 186:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_width :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_get_primary_width =
+  BG.unsafePerformIO hs_bindgen_ad0a46812ed66955
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_height@
+foreign import ccall unsafe "hs_bindgen_7eefbabd5f9b98b6" hs_bindgen_7eefbabd5f9b98b6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_height@
+hs_bindgen_7eefbabd5f9b98b6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_7eefbabd5f9b98b6 =
+  BG.fromFFIType hs_bindgen_7eefbabd5f9b98b6_base
+
+{-# NOINLINE heif_image_get_primary_height #-}
+{-| __C declaration:__ @heif_image_get_primary_height@
+
+    __defined at:__ @libheif\/heif_image.h 198:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_height :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_get_primary_height =
+  BG.unsafePerformIO hs_bindgen_7eefbabd5f9b98b6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_crop@
+foreign import ccall unsafe "hs_bindgen_454755c015cd191e" hs_bindgen_454755c015cd191e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_crop@
+hs_bindgen_454755c015cd191e :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_454755c015cd191e =
+  BG.fromFFIType hs_bindgen_454755c015cd191e_base
+
+{-# NOINLINE heif_image_crop #-}
+{-| __C declaration:__ @heif_image_crop@
+
+    __defined at:__ @libheif\/heif_image.h 222:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_crop :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error)
+heif_image_crop =
+  BG.unsafePerformIO hs_bindgen_454755c015cd191e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extract_area@
+foreign import ccall unsafe "hs_bindgen_137ea4eb4c1dbebf" hs_bindgen_137ea4eb4c1dbebf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extract_area@
+hs_bindgen_137ea4eb4c1dbebf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_security_limits -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error))
+hs_bindgen_137ea4eb4c1dbebf =
+  BG.fromFFIType hs_bindgen_137ea4eb4c1dbebf_base
+
+{-# NOINLINE heif_image_extract_area #-}
+{-| __C declaration:__ @heif_image_extract_area@
+
+    __defined at:__ @libheif\/heif_image.h 226:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extract_area :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_security_limits -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error)
+heif_image_extract_area =
+  BG.unsafePerformIO hs_bindgen_137ea4eb4c1dbebf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_ab02493a34d79677" hs_bindgen_ab02493a34d79677_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel@
+hs_bindgen_ab02493a34d79677 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_ab02493a34d79677 =
+  BG.fromFFIType hs_bindgen_ab02493a34d79677_base
+
+{-# NOINLINE heif_image_get_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_get_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image.h 238:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_ab02493a34d79677
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel_range@
+foreign import ccall unsafe "hs_bindgen_d2e302dd2ee8f950" hs_bindgen_d2e302dd2ee8f950_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel_range@
+hs_bindgen_d2e302dd2ee8f950 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_d2e302dd2ee8f950 =
+  BG.fromFFIType hs_bindgen_d2e302dd2ee8f950_base
+
+{-# NOINLINE heif_image_get_bits_per_pixel_range #-}
+{-| __C declaration:__ @heif_image_get_bits_per_pixel_range@
+
+    __defined at:__ @libheif\/heif_image.h 247:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel_range :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_bits_per_pixel_range =
+  BG.unsafePerformIO hs_bindgen_d2e302dd2ee8f950
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_channel@
+foreign import ccall unsafe "hs_bindgen_5b15857d396cae51" hs_bindgen_5b15857d396cae51_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_channel@
+hs_bindgen_5b15857d396cae51 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_5b15857d396cae51 =
+  BG.fromFFIType hs_bindgen_5b15857d396cae51_base
+
+{-# NOINLINE heif_image_has_channel #-}
+{-| __C declaration:__ @heif_image_has_channel@
+
+    __defined at:__ @libheif\/heif_image.h 250:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_channel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_has_channel =
+  BG.unsafePerformIO hs_bindgen_5b15857d396cae51
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly@
+foreign import ccall unsafe "hs_bindgen_a293c99564ffbee1" hs_bindgen_a293c99564ffbee1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly@
+hs_bindgen_a293c99564ffbee1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_a293c99564ffbee1 =
+  BG.fromFFIType hs_bindgen_a293c99564ffbee1_base
+
+{-# NOINLINE heif_image_get_plane_readonly #-}
+{-| __C declaration:__ @heif_image_get_plane_readonly@
+
+    __defined at:__ @libheif\/heif_image.h 258:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane_readonly =
+  BG.unsafePerformIO hs_bindgen_a293c99564ffbee1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane@
+foreign import ccall unsafe "hs_bindgen_1e54091d31894195" hs_bindgen_1e54091d31894195_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane@
+hs_bindgen_1e54091d31894195 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_1e54091d31894195 =
+  BG.fromFFIType hs_bindgen_1e54091d31894195_base
+
+{-# NOINLINE heif_image_get_plane #-}
+{-| __C declaration:__ @heif_image_get_plane@
+
+    __defined at:__ @libheif\/heif_image.h 264:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane =
+  BG.unsafePerformIO hs_bindgen_1e54091d31894195
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly2@
+foreign import ccall unsafe "hs_bindgen_3ac7ef05f949468d" hs_bindgen_3ac7ef05f949468d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly2@
+hs_bindgen_3ac7ef05f949468d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_3ac7ef05f949468d =
+  BG.fromFFIType hs_bindgen_3ac7ef05f949468d_base
+
+{-# NOINLINE heif_image_get_plane_readonly2 #-}
+{-| __C declaration:__ @heif_image_get_plane_readonly2@
+
+    __defined at:__ @libheif\/heif_image.h 273:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly2 :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane_readonly2 =
+  BG.unsafePerformIO hs_bindgen_3ac7ef05f949468d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane2@
+foreign import ccall unsafe "hs_bindgen_b3d879307b0ecfef" hs_bindgen_b3d879307b0ecfef_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane2@
+hs_bindgen_b3d879307b0ecfef :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_b3d879307b0ecfef =
+  BG.fromFFIType hs_bindgen_b3d879307b0ecfef_base
+
+{-# NOINLINE heif_image_get_plane2 #-}
+{-| __C declaration:__ @heif_image_get_plane2@
+
+    __defined at:__ @libheif\/heif_image.h 278:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane2 :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane2 =
+  BG.unsafePerformIO hs_bindgen_b3d879307b0ecfef
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_scale_image@
+foreign import ccall unsafe "hs_bindgen_91b44b593d8b2e0d" hs_bindgen_91b44b593d8b2e0d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_scale_image@
+hs_bindgen_91b44b593d8b2e0d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_image) -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_scaling_options -> IO Heif_error))
+hs_bindgen_91b44b593d8b2e0d =
+  BG.fromFFIType hs_bindgen_91b44b593d8b2e0d_base
+
+{-# NOINLINE heif_image_scale_image #-}
+{-| __C declaration:__ @heif_image_scale_image@
+
+    __defined at:__ @libheif\/heif_image.h 287:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_scale_image :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_image) -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_scaling_options -> IO Heif_error)
+heif_image_scale_image =
+  BG.unsafePerformIO hs_bindgen_91b44b593d8b2e0d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_to_size_fill_with_zero@
+foreign import ccall unsafe "hs_bindgen_39581edbcefe9e11" hs_bindgen_39581edbcefe9e11_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_to_size_fill_with_zero@
+hs_bindgen_39581edbcefe9e11 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error))
+hs_bindgen_39581edbcefe9e11 =
+  BG.fromFFIType hs_bindgen_39581edbcefe9e11_base
+
+{-# NOINLINE heif_image_extend_to_size_fill_with_zero #-}
+{-| __C declaration:__ @heif_image_extend_to_size_fill_with_zero@
+
+    __defined at:__ @libheif\/heif_image.h 295:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_to_size_fill_with_zero :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error)
+heif_image_extend_to_size_fill_with_zero =
+  BG.unsafePerformIO hs_bindgen_39581edbcefe9e11
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_decoding_warnings@
+foreign import ccall unsafe "hs_bindgen_052f3910ccd5c18c" hs_bindgen_052f3910ccd5c18c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_decoding_warnings@
+hs_bindgen_052f3910ccd5c18c :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.Ptr Heif_error -> BG.CInt -> IO BG.CInt))
+hs_bindgen_052f3910ccd5c18c =
+  BG.fromFFIType hs_bindgen_052f3910ccd5c18c_base
+
+{-# NOINLINE heif_image_get_decoding_warnings #-}
+{-| __C declaration:__ @heif_image_get_decoding_warnings@
+
+    __defined at:__ @libheif\/heif_image.h 305:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_decoding_warnings :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.Ptr Heif_error -> BG.CInt -> IO BG.CInt)
+heif_image_get_decoding_warnings =
+  BG.unsafePerformIO hs_bindgen_052f3910ccd5c18c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_decoding_warning@
+foreign import ccall unsafe "hs_bindgen_77d12dd9eb75d762" hs_bindgen_77d12dd9eb75d762_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_decoding_warning@
+hs_bindgen_77d12dd9eb75d762 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_error -> IO ()))
+hs_bindgen_77d12dd9eb75d762 =
+  BG.fromFFIType hs_bindgen_77d12dd9eb75d762_base
+
+{-# NOINLINE heif_image_add_decoding_warning #-}
+{-| __C declaration:__ @heif_image_add_decoding_warning@
+
+    __defined at:__ @libheif\/heif_image.h 312:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_decoding_warning :: BG.FunPtr (BG.Ptr Heif_image -> Heif_error -> IO ())
+heif_image_add_decoding_warning =
+  BG.unsafePerformIO hs_bindgen_77d12dd9eb75d762
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_release@
+foreign import ccall unsafe "hs_bindgen_e57b35874b9c2ef5" hs_bindgen_e57b35874b9c2ef5_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_release@
+hs_bindgen_e57b35874b9c2ef5 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO ()))
+hs_bindgen_e57b35874b9c2ef5 =
+  BG.fromFFIType hs_bindgen_e57b35874b9c2ef5_base
+
+{-# NOINLINE heif_image_release #-}
+{-| __C declaration:__ @heif_image_release@
+
+    __defined at:__ @libheif\/heif_image.h 317:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_release :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO ())
+heif_image_release =
+  BG.unsafePerformIO hs_bindgen_e57b35874b9c2ef5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_b5b62770d080f1eb" hs_bindgen_b5b62770d080f1eb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_pixel_aspect_ratio@
+hs_bindgen_b5b62770d080f1eb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_b5b62770d080f1eb =
+  BG.fromFFIType hs_bindgen_b5b62770d080f1eb_base
+
+{-# NOINLINE heif_image_get_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 320:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_pixel_aspect_ratio :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_get_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_b5b62770d080f1eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_5efdd32e4d856855" hs_bindgen_5efdd32e4d856855_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_pixel_aspect_ratio@
+hs_bindgen_5efdd32e4d856855 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_5efdd32e4d856855 =
+  BG.fromFFIType hs_bindgen_5efdd32e4d856855_base
+
+{-# NOINLINE heif_image_set_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 323:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_pixel_aspect_ratio :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_set_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_5efdd32e4d856855
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_cc8120096e554016" hs_bindgen_cc8120096e554016_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_pixel_aspect_ratio@
+hs_bindgen_cc8120096e554016 :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_cc8120096e554016 =
+  BG.fromFFIType hs_bindgen_cc8120096e554016_base
+
+{-# NOINLINE heif_image_handle_set_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_handle_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 326:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_pixel_aspect_ratio :: BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_handle_set_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_cc8120096e554016
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_create@
+foreign import ccall unsafe "hs_bindgen_e527bfc712439944" hs_bindgen_e527bfc712439944_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_create@
+hs_bindgen_e527bfc712439944 :: IO (BG.FunPtr (BG.CInt -> BG.CInt -> Heif_colorspace -> Heif_chroma -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error))
+hs_bindgen_e527bfc712439944 =
+  BG.fromFFIType hs_bindgen_e527bfc712439944_base
+
+{-# NOINLINE heif_image_create #-}
+{-| __C declaration:__ @heif_image_create@
+
+    __defined at:__ @libheif\/heif_image.h 344:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_create :: BG.FunPtr (BG.CInt -> BG.CInt -> Heif_colorspace -> Heif_chroma -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error)
+heif_image_create =
+  BG.unsafePerformIO hs_bindgen_e527bfc712439944
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane@
+foreign import ccall unsafe "hs_bindgen_bbfa602c16d0e115" hs_bindgen_bbfa602c16d0e115_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane@
+hs_bindgen_bbfa602c16d0e115 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_bbfa602c16d0e115 =
+  BG.fromFFIType hs_bindgen_bbfa602c16d0e115_base
+
+{-# NOINLINE heif_image_add_plane #-}
+{-| __C declaration:__ @heif_image_add_plane@
+
+    __defined at:__ @libheif\/heif_image.h 378:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error)
+heif_image_add_plane =
+  BG.unsafePerformIO hs_bindgen_bbfa602c16d0e115
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane_safe@
+foreign import ccall unsafe "hs_bindgen_db45cbabffee2123" hs_bindgen_db45cbabffee2123_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane_safe@
+hs_bindgen_db45cbabffee2123 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error))
+hs_bindgen_db45cbabffee2123 =
+  BG.fromFFIType hs_bindgen_db45cbabffee2123_base
+
+{-# NOINLINE heif_image_add_plane_safe #-}
+{-| __C declaration:__ @heif_image_add_plane_safe@
+
+    __defined at:__ @libheif\/heif_image.h 387:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane_safe :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error)
+heif_image_add_plane_safe =
+  BG.unsafePerformIO hs_bindgen_db45cbabffee2123
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_5ca559cd3abef76b" hs_bindgen_5ca559cd3abef76b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_premultiplied_alpha@
+hs_bindgen_5ca559cd3abef76b :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> IO ()))
+hs_bindgen_5ca559cd3abef76b =
+  BG.fromFFIType hs_bindgen_5ca559cd3abef76b_base
+
+{-# NOINLINE heif_image_set_premultiplied_alpha #-}
+{-| __C declaration:__ @heif_image_set_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 394:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_premultiplied_alpha :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> IO ())
+heif_image_set_premultiplied_alpha =
+  BG.unsafePerformIO hs_bindgen_5ca559cd3abef76b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_dfd40ac51dd90bdf" hs_bindgen_dfd40ac51dd90bdf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_is_premultiplied_alpha@
+hs_bindgen_dfd40ac51dd90bdf :: IO (BG.FunPtr (BG.Ptr Heif_image -> IO BG.CInt))
+hs_bindgen_dfd40ac51dd90bdf =
+  BG.fromFFIType hs_bindgen_dfd40ac51dd90bdf_base
+
+{-# NOINLINE heif_image_is_premultiplied_alpha #-}
+{-| __C declaration:__ @heif_image_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_is_premultiplied_alpha :: BG.FunPtr (BG.Ptr Heif_image -> IO BG.CInt)
+heif_image_is_premultiplied_alpha =
+  BG.unsafePerformIO hs_bindgen_dfd40ac51dd90bdf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_padding_to_size@
+foreign import ccall unsafe "hs_bindgen_9fb9a1c5713d955a" hs_bindgen_9fb9a1c5713d955a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_padding_to_size@
+hs_bindgen_9fb9a1c5713d955a :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_9fb9a1c5713d955a =
+  BG.fromFFIType hs_bindgen_9fb9a1c5713d955a_base
+
+{-# NOINLINE heif_image_extend_padding_to_size #-}
+{-| __C declaration:__ @heif_image_extend_padding_to_size@
+
+    __defined at:__ @libheif\/heif_image.h 406:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_padding_to_size :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> IO Heif_error)
+heif_image_extend_padding_to_size =
+  BG.unsafePerformIO hs_bindgen_9fb9a1c5713d955a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_set_defaults@
+foreign import ccall unsafe "hs_bindgen_6f16968893d84864" hs_bindgen_6f16968893d84864_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_set_defaults@
+hs_bindgen_6f16968893d84864 :: IO (BG.FunPtr (BG.Ptr Heif_color_conversion_options -> IO ()))
+hs_bindgen_6f16968893d84864 =
+  BG.fromFFIType hs_bindgen_6f16968893d84864_base
+
+{-# NOINLINE heif_color_conversion_options_set_defaults #-}
+{-| __C declaration:__ @heif_color_conversion_options_set_defaults@
+
+    __defined at:__ @libheif\/heif_color.h 99:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_set_defaults :: BG.FunPtr (BG.Ptr Heif_color_conversion_options -> IO ())
+heif_color_conversion_options_set_defaults =
+  BG.unsafePerformIO hs_bindgen_6f16968893d84864
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_alloc@
+foreign import ccall unsafe "hs_bindgen_64bcbbba230b33f1" hs_bindgen_64bcbbba230b33f1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_alloc@
+hs_bindgen_64bcbbba230b33f1 :: IO (BG.FunPtr (IO (BG.Ptr Heif_color_conversion_options_ext)))
+hs_bindgen_64bcbbba230b33f1 =
+  BG.fromFFIType hs_bindgen_64bcbbba230b33f1_base
+
+{-# NOINLINE heif_color_conversion_options_ext_alloc #-}
+{-| __C declaration:__ @heif_color_conversion_options_ext_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 102:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_alloc :: BG.FunPtr (IO (BG.Ptr Heif_color_conversion_options_ext))
+heif_color_conversion_options_ext_alloc =
+  BG.unsafePerformIO hs_bindgen_64bcbbba230b33f1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_copy@
+foreign import ccall unsafe "hs_bindgen_9f16886e93804ee2" hs_bindgen_9f16886e93804ee2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_copy@
+hs_bindgen_9f16886e93804ee2 :: IO (BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> PtrConst.PtrConst Heif_color_conversion_options_ext -> IO ()))
+hs_bindgen_9f16886e93804ee2 =
+  BG.fromFFIType hs_bindgen_9f16886e93804ee2_base
+
+{-# NOINLINE heif_color_conversion_options_ext_copy #-}
+{-| __C declaration:__ @heif_color_conversion_options_ext_copy@
+
+    __defined at:__ @libheif\/heif_color.h 105:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_copy :: BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> PtrConst.PtrConst Heif_color_conversion_options_ext -> IO ())
+heif_color_conversion_options_ext_copy =
+  BG.unsafePerformIO hs_bindgen_9f16886e93804ee2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_free@
+foreign import ccall unsafe "hs_bindgen_2711d46fed5cbeb2" hs_bindgen_2711d46fed5cbeb2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_free@
+hs_bindgen_2711d46fed5cbeb2 :: IO (BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> IO ()))
+hs_bindgen_2711d46fed5cbeb2 =
+  BG.fromFFIType hs_bindgen_2711d46fed5cbeb2_base
+
+{-# NOINLINE heif_color_conversion_options_ext_free #-}
+{-| __C declaration:__ @heif_color_conversion_options_ext_free@
+
+    __defined at:__ @libheif\/heif_color.h 109:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_free :: BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> IO ())
+heif_color_conversion_options_ext_free =
+  BG.unsafePerformIO hs_bindgen_2711d46fed5cbeb2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_e64f44dae6e663ed" hs_bindgen_e64f44dae6e663ed_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_color_profile_type@
+hs_bindgen_e64f44dae6e663ed :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_color_profile_type))
+hs_bindgen_e64f44dae6e663ed =
+  BG.fromFFIType hs_bindgen_e64f44dae6e663ed_base
+
+{-# NOINLINE heif_image_handle_get_color_profile_type #-}
+{-| __C declaration:__ @heif_image_handle_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 129:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_color_profile_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_color_profile_type)
+heif_image_handle_get_color_profile_type =
+  BG.unsafePerformIO hs_bindgen_e64f44dae6e663ed
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_ed69fd2400ee84ba" hs_bindgen_ed69fd2400ee84ba_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile_size@
+hs_bindgen_ed69fd2400ee84ba :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.CSize))
+hs_bindgen_ed69fd2400ee84ba =
+  BG.fromFFIType hs_bindgen_ed69fd2400ee84ba_base
+
+{-# NOINLINE heif_image_handle_get_raw_color_profile_size #-}
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 132:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile_size :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.CSize)
+heif_image_handle_get_raw_color_profile_size =
+  BG.unsafePerformIO hs_bindgen_ed69fd2400ee84ba
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_d8c99aa8c6e5a830" hs_bindgen_d8c99aa8c6e5a830_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile@
+hs_bindgen_d8c99aa8c6e5a830 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_d8c99aa8c6e5a830 =
+  BG.fromFFIType hs_bindgen_d8c99aa8c6e5a830_base
+
+{-# NOINLINE heif_image_handle_get_raw_color_profile #-}
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 136:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr BG.Void -> IO Heif_error)
+heif_image_handle_get_raw_color_profile =
+  BG.unsafePerformIO hs_bindgen_d8c99aa8c6e5a830
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_color_primaries@
+foreign import ccall unsafe "hs_bindgen_4614c65e54f21413" hs_bindgen_4614c65e54f21413_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_color_primaries@
+hs_bindgen_4614c65e54f21413 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error))
+hs_bindgen_4614c65e54f21413 =
+  BG.fromFFIType hs_bindgen_4614c65e54f21413_base
+
+{-# NOINLINE heif_nclx_color_profile_set_color_primaries #-}
+{-| __C declaration:__ @heif_nclx_color_profile_set_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 215:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_color_primaries :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error)
+heif_nclx_color_profile_set_color_primaries =
+  BG.unsafePerformIO hs_bindgen_4614c65e54f21413
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_transfer_characteristics@
+foreign import ccall unsafe "hs_bindgen_116e28f3db0d4120" hs_bindgen_116e28f3db0d4120_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_transfer_characteristics@
+hs_bindgen_116e28f3db0d4120 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error))
+hs_bindgen_116e28f3db0d4120 =
+  BG.fromFFIType hs_bindgen_116e28f3db0d4120_base
+
+{-# NOINLINE heif_nclx_color_profile_set_transfer_characteristics #-}
+{-| __C declaration:__ @heif_nclx_color_profile_set_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_transfer_characteristics :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error)
+heif_nclx_color_profile_set_transfer_characteristics =
+  BG.unsafePerformIO hs_bindgen_116e28f3db0d4120
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_matrix_coefficients@
+foreign import ccall unsafe "hs_bindgen_19c22d40dc00a9c9" hs_bindgen_19c22d40dc00a9c9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_matrix_coefficients@
+hs_bindgen_19c22d40dc00a9c9 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error))
+hs_bindgen_19c22d40dc00a9c9 =
+  BG.fromFFIType hs_bindgen_19c22d40dc00a9c9_base
+
+{-# NOINLINE heif_nclx_color_profile_set_matrix_coefficients #-}
+{-| __C declaration:__ @heif_nclx_color_profile_set_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 221:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_matrix_coefficients :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error)
+heif_nclx_color_profile_set_matrix_coefficients =
+  BG.unsafePerformIO hs_bindgen_19c22d40dc00a9c9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_b3b5fb2096a6f40b" hs_bindgen_b3b5fb2096a6f40b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nclx_color_profile@
+hs_bindgen_b3b5fb2096a6f40b :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error))
+hs_bindgen_b3b5fb2096a6f40b =
+  BG.fromFFIType hs_bindgen_b3b5fb2096a6f40b_base
+
+{-# NOINLINE heif_image_handle_get_nclx_color_profile #-}
+{-| __C declaration:__ @heif_image_handle_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 227:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nclx_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error)
+heif_image_handle_get_nclx_color_profile =
+  BG.unsafePerformIO hs_bindgen_b3b5fb2096a6f40b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_alloc@
+foreign import ccall unsafe "hs_bindgen_a20e40e2206679a9" hs_bindgen_a20e40e2206679a9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_alloc@
+hs_bindgen_a20e40e2206679a9 :: IO (BG.FunPtr (IO (BG.Ptr Heif_color_profile_nclx)))
+hs_bindgen_a20e40e2206679a9 =
+  BG.fromFFIType hs_bindgen_a20e40e2206679a9_base
+
+{-# NOINLINE heif_nclx_color_profile_alloc #-}
+{-| __C declaration:__ @heif_nclx_color_profile_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 234:26@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_alloc :: BG.FunPtr (IO (BG.Ptr Heif_color_profile_nclx))
+heif_nclx_color_profile_alloc =
+  BG.unsafePerformIO hs_bindgen_a20e40e2206679a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_free@
+foreign import ccall unsafe "hs_bindgen_699d69b45a1cb468" hs_bindgen_699d69b45a1cb468_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_free@
+hs_bindgen_699d69b45a1cb468 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> IO ()))
+hs_bindgen_699d69b45a1cb468 =
+  BG.fromFFIType hs_bindgen_699d69b45a1cb468_base
+
+{-# NOINLINE heif_nclx_color_profile_free #-}
+{-| __C declaration:__ @heif_nclx_color_profile_free@
+
+    __defined at:__ @libheif\/heif_color.h 237:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_free :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> IO ())
+heif_nclx_color_profile_free =
+  BG.unsafePerformIO hs_bindgen_699d69b45a1cb468
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_409cc3435b1a7e31" hs_bindgen_409cc3435b1a7e31_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_color_profile_type@
+hs_bindgen_409cc3435b1a7e31 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_color_profile_type))
+hs_bindgen_409cc3435b1a7e31 =
+  BG.fromFFIType hs_bindgen_409cc3435b1a7e31_base
+
+{-# NOINLINE heif_image_get_color_profile_type #-}
+{-| __C declaration:__ @heif_image_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 243:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_color_profile_type :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_color_profile_type)
+heif_image_get_color_profile_type =
+  BG.unsafePerformIO hs_bindgen_409cc3435b1a7e31
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_2723d50c493f3f61" hs_bindgen_2723d50c493f3f61_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile_size@
+hs_bindgen_2723d50c493f3f61 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.CSize))
+hs_bindgen_2723d50c493f3f61 =
+  BG.fromFFIType hs_bindgen_2723d50c493f3f61_base
+
+{-# NOINLINE heif_image_get_raw_color_profile_size #-}
+{-| __C declaration:__ @heif_image_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 247:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile_size :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.CSize)
+heif_image_get_raw_color_profile_size =
+  BG.unsafePerformIO hs_bindgen_2723d50c493f3f61
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_e92550f12c6d8fb0" hs_bindgen_e92550f12c6d8fb0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile@
+hs_bindgen_e92550f12c6d8fb0 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_e92550f12c6d8fb0 =
+  BG.fromFFIType hs_bindgen_e92550f12c6d8fb0_base
+
+{-# NOINLINE heif_image_get_raw_color_profile #-}
+{-| __C declaration:__ @heif_image_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr BG.Void -> IO Heif_error)
+heif_image_get_raw_color_profile =
+  BG.unsafePerformIO hs_bindgen_e92550f12c6d8fb0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_0988df78a76b5973" hs_bindgen_0988df78a76b5973_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nclx_color_profile@
+hs_bindgen_0988df78a76b5973 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error))
+hs_bindgen_0988df78a76b5973 =
+  BG.fromFFIType hs_bindgen_0988df78a76b5973_base
+
+{-# NOINLINE heif_image_get_nclx_color_profile #-}
+{-| __C declaration:__ @heif_image_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nclx_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error)
+heif_image_get_nclx_color_profile =
+  BG.unsafePerformIO hs_bindgen_0988df78a76b5973
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_1cbc106cb4bd0c43" hs_bindgen_1cbc106cb4bd0c43_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_raw_color_profile@
+hs_bindgen_1cbc106cb4bd0c43 :: IO (BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> IO Heif_error))
+hs_bindgen_1cbc106cb4bd0c43 =
+  BG.fromFFIType hs_bindgen_1cbc106cb4bd0c43_base
+
+{-# NOINLINE heif_image_set_raw_color_profile #-}
+{-| __C declaration:__ @heif_image_set_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 262:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_raw_color_profile :: BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> IO Heif_error)
+heif_image_set_raw_color_profile =
+  BG.unsafePerformIO hs_bindgen_1cbc106cb4bd0c43
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_7aa510c633572c35" hs_bindgen_7aa510c633572c35_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nclx_color_profile@
+hs_bindgen_7aa510c633572c35 :: IO (BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst Heif_color_profile_nclx -> IO Heif_error))
+hs_bindgen_7aa510c633572c35 =
+  BG.fromFFIType hs_bindgen_7aa510c633572c35_base
+
+{-# NOINLINE heif_image_set_nclx_color_profile #-}
+{-| __C declaration:__ @heif_image_set_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 268:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nclx_color_profile :: BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst Heif_color_profile_nclx -> IO Heif_error)
+heif_image_set_nclx_color_profile =
+  BG.unsafePerformIO hs_bindgen_7aa510c633572c35
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_db973d1a2a00a405" hs_bindgen_db973d1a2a00a405_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_content_light_level@
+hs_bindgen_db973d1a2a00a405 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_db973d1a2a00a405 =
+  BG.fromFFIType hs_bindgen_db973d1a2a00a405_base
+
+{-# NOINLINE heif_image_has_content_light_level #-}
+{-| __C declaration:__ @heif_image_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 301:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_content_light_level =
+  BG.unsafePerformIO hs_bindgen_db973d1a2a00a405
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_ff42d34b21f3a2ce" hs_bindgen_ff42d34b21f3a2ce_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_content_light_level@
+hs_bindgen_ff42d34b21f3a2ce :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_ff42d34b21f3a2ce =
+  BG.fromFFIType hs_bindgen_ff42d34b21f3a2ce_base
+
+{-# NOINLINE heif_image_handle_has_content_light_level #-}
+{-| __C declaration:__ @heif_image_handle_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 304:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_content_light_level =
+  BG.unsafePerformIO hs_bindgen_ff42d34b21f3a2ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_530d71005a426553" hs_bindgen_530d71005a426553_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_content_light_level@
+hs_bindgen_530d71005a426553 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_content_light_level -> IO ()))
+hs_bindgen_530d71005a426553 =
+  BG.fromFFIType hs_bindgen_530d71005a426553_base
+
+{-# NOINLINE heif_image_get_content_light_level #-}
+{-| __C declaration:__ @heif_image_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 308:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_content_light_level -> IO ())
+heif_image_get_content_light_level =
+  BG.unsafePerformIO hs_bindgen_530d71005a426553
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_5d0d43fee97f75e5" hs_bindgen_5d0d43fee97f75e5_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_content_light_level@
+hs_bindgen_5d0d43fee97f75e5 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_content_light_level -> IO BG.CInt))
+hs_bindgen_5d0d43fee97f75e5 =
+  BG.fromFFIType hs_bindgen_5d0d43fee97f75e5_base
+
+{-# NOINLINE heif_image_handle_get_content_light_level #-}
+{-| __C declaration:__ @heif_image_handle_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 312:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_content_light_level -> IO BG.CInt)
+heif_image_handle_get_content_light_level =
+  BG.unsafePerformIO hs_bindgen_5d0d43fee97f75e5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_2c51fa25a85ab816" hs_bindgen_2c51fa25a85ab816_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_content_light_level@
+hs_bindgen_2c51fa25a85ab816 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_content_light_level -> IO ()))
+hs_bindgen_2c51fa25a85ab816 =
+  BG.fromFFIType hs_bindgen_2c51fa25a85ab816_base
+
+{-# NOINLINE heif_image_set_content_light_level #-}
+{-| __C declaration:__ @heif_image_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 315:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_content_light_level -> IO ())
+heif_image_set_content_light_level =
+  BG.unsafePerformIO hs_bindgen_2c51fa25a85ab816
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_75e4bb9edfe7cd9f" hs_bindgen_75e4bb9edfe7cd9f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_content_light_level@
+hs_bindgen_75e4bb9edfe7cd9f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_content_light_level -> IO ()))
+hs_bindgen_75e4bb9edfe7cd9f =
+  BG.fromFFIType hs_bindgen_75e4bb9edfe7cd9f_base
+
+{-# NOINLINE heif_image_handle_set_content_light_level #-}
+{-| __C declaration:__ @heif_image_handle_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 318:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_content_light_level -> IO ())
+heif_image_handle_set_content_light_level =
+  BG.unsafePerformIO hs_bindgen_75e4bb9edfe7cd9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_46bc79c600610be0" hs_bindgen_46bc79c600610be0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_mastering_display_colour_volume@
+hs_bindgen_46bc79c600610be0 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_46bc79c600610be0 =
+  BG.fromFFIType hs_bindgen_46bc79c600610be0_base
+
+{-# NOINLINE heif_image_has_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_46bc79c600610be0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_504e9917f645ef88" hs_bindgen_504e9917f645ef88_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_mastering_display_colour_volume@
+hs_bindgen_504e9917f645ef88 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_504e9917f645ef88 =
+  BG.fromFFIType hs_bindgen_504e9917f645ef88_base
+
+{-# NOINLINE heif_image_handle_has_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_handle_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_504e9917f645ef88
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_4a2fb9e8f85d6de1" hs_bindgen_4a2fb9e8f85d6de1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_mastering_display_colour_volume@
+hs_bindgen_4a2fb9e8f85d6de1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_mastering_display_colour_volume -> IO ()))
+hs_bindgen_4a2fb9e8f85d6de1 =
+  BG.fromFFIType hs_bindgen_4a2fb9e8f85d6de1_base
+
+{-# NOINLINE heif_image_get_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 404:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_mastering_display_colour_volume -> IO ())
+heif_image_get_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_4a2fb9e8f85d6de1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_95d43adae491456f" hs_bindgen_95d43adae491456f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_mastering_display_colour_volume@
+hs_bindgen_95d43adae491456f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_mastering_display_colour_volume -> IO BG.CInt))
+hs_bindgen_95d43adae491456f =
+  BG.fromFFIType hs_bindgen_95d43adae491456f_base
+
+{-# NOINLINE heif_image_handle_get_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_handle_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 408:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_mastering_display_colour_volume -> IO BG.CInt)
+heif_image_handle_get_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_95d43adae491456f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_290787e53e2b60b6" hs_bindgen_290787e53e2b60b6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_mastering_display_colour_volume@
+hs_bindgen_290787e53e2b60b6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ()))
+hs_bindgen_290787e53e2b60b6 =
+  BG.fromFFIType hs_bindgen_290787e53e2b60b6_base
+
+{-# NOINLINE heif_image_set_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 411:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ())
+heif_image_set_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_290787e53e2b60b6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_5fe4f8ca0e66f87f" hs_bindgen_5fe4f8ca0e66f87f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_mastering_display_colour_volume@
+hs_bindgen_5fe4f8ca0e66f87f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ()))
+hs_bindgen_5fe4f8ca0e66f87f =
+  BG.fromFFIType hs_bindgen_5fe4f8ca0e66f87f_base
+
+{-# NOINLINE heif_image_handle_set_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_handle_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 414:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ())
+heif_image_handle_set_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_5fe4f8ca0e66f87f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_80383eae4f658d98" hs_bindgen_80383eae4f658d98_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_ambient_viewing_environment@
+hs_bindgen_80383eae4f658d98 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_80383eae4f658d98 =
+  BG.fromFFIType hs_bindgen_80383eae4f658d98_base
+
+{-# NOINLINE heif_image_has_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 420:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_80383eae4f658d98
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_d98bfd626a7d6830" hs_bindgen_d98bfd626a7d6830_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_ambient_viewing_environment@
+hs_bindgen_d98bfd626a7d6830 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_d98bfd626a7d6830 =
+  BG.fromFFIType hs_bindgen_d98bfd626a7d6830_base
+
+{-# NOINLINE heif_image_handle_has_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_handle_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 423:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_d98bfd626a7d6830
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_d77001407b8f6d06" hs_bindgen_d77001407b8f6d06_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_ambient_viewing_environment@
+hs_bindgen_d77001407b8f6d06 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt))
+hs_bindgen_d77001407b8f6d06 =
+  BG.fromFFIType hs_bindgen_d77001407b8f6d06_base
+
+{-# NOINLINE heif_image_get_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 427:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt)
+heif_image_get_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_d77001407b8f6d06
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_23814d0fca44d5da" hs_bindgen_23814d0fca44d5da_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ambient_viewing_environment@
+hs_bindgen_23814d0fca44d5da :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt))
+hs_bindgen_23814d0fca44d5da =
+  BG.fromFFIType hs_bindgen_23814d0fca44d5da_base
+
+{-# NOINLINE heif_image_handle_get_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_handle_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 431:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt)
+heif_image_handle_get_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_23814d0fca44d5da
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_71575ae4017a355d" hs_bindgen_71575ae4017a355d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_ambient_viewing_environment@
+hs_bindgen_71575ae4017a355d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ()))
+hs_bindgen_71575ae4017a355d =
+  BG.fromFFIType hs_bindgen_71575ae4017a355d_base
+
+{-# NOINLINE heif_image_set_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 434:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ())
+heif_image_set_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_71575ae4017a355d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_c312bdda2671ccdc" hs_bindgen_c312bdda2671ccdc_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_ambient_viewing_environment@
+hs_bindgen_c312bdda2671ccdc :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ()))
+hs_bindgen_c312bdda2671ccdc =
+  BG.fromFFIType hs_bindgen_c312bdda2671ccdc_base
+
+{-# NOINLINE heif_image_handle_set_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_handle_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 437:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ())
+heif_image_handle_set_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_c312bdda2671ccdc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_e7d75561cc58be41" hs_bindgen_e7d75561cc58be41_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_nominal_diffuse_white_luminance@
+hs_bindgen_e7d75561cc58be41 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_e7d75561cc58be41 =
+  BG.fromFFIType hs_bindgen_e7d75561cc58be41_base
+
+{-# NOINLINE heif_image_has_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 450:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_e7d75561cc58be41
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_ac6ca5887cc19e74" hs_bindgen_ac6ca5887cc19e74_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nominal_diffuse_white_luminance@
+hs_bindgen_ac6ca5887cc19e74 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_ac6ca5887cc19e74 =
+  BG.fromFFIType hs_bindgen_ac6ca5887cc19e74_base
+
+{-# NOINLINE heif_image_get_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 453:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_ac6ca5887cc19e74
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_3a5d53bf827d8580" hs_bindgen_3a5d53bf827d8580_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nominal_diffuse_white_luminance@
+hs_bindgen_3a5d53bf827d8580 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_3a5d53bf827d8580 =
+  BG.fromFFIType hs_bindgen_3a5d53bf827d8580_base
+
+{-# NOINLINE heif_image_set_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 456:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_set_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_3a5d53bf827d8580
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_8478e7753942715a" hs_bindgen_8478e7753942715a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_nominal_diffuse_white_luminance@
+hs_bindgen_8478e7753942715a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_8478e7753942715a =
+  BG.fromFFIType hs_bindgen_8478e7753942715a_base
+
+{-# NOINLINE heif_image_handle_has_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_handle_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 459:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_8478e7753942715a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_c20c28632ce30863" hs_bindgen_c20c28632ce30863_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nominal_diffuse_white_luminance@
+hs_bindgen_c20c28632ce30863 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_c20c28632ce30863 =
+  BG.fromFFIType hs_bindgen_c20c28632ce30863_base
+
+{-# NOINLINE heif_image_handle_get_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_handle_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 462:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_handle_get_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_c20c28632ce30863
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_101384e10d3eb9f6" hs_bindgen_101384e10d3eb9f6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_nominal_diffuse_white_luminance@
+hs_bindgen_101384e10d3eb9f6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_101384e10d3eb9f6 =
+  BG.fromFFIType hs_bindgen_101384e10d3eb9f6_base
+
+{-# NOINLINE heif_image_handle_set_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_handle_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 465:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_handle_set_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_101384e10d3eb9f6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_mastering_display_colour_volume_decode@
+foreign import ccall unsafe "hs_bindgen_bd18c4f597c6733a" hs_bindgen_bd18c4f597c6733a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_mastering_display_colour_volume_decode@
+hs_bindgen_bd18c4f597c6733a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_mastering_display_colour_volume -> BG.Ptr Heif_decoded_mastering_display_colour_volume -> IO Heif_error))
+hs_bindgen_bd18c4f597c6733a =
+  BG.fromFFIType hs_bindgen_bd18c4f597c6733a_base
+
+{-# NOINLINE heif_mastering_display_colour_volume_decode #-}
+{-| __C declaration:__ @heif_mastering_display_colour_volume_decode@
+
+    __defined at:__ @libheif\/heif_color.h 472:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_mastering_display_colour_volume_decode :: BG.FunPtr (PtrConst.PtrConst Heif_mastering_display_colour_volume -> BG.Ptr Heif_decoded_mastering_display_colour_volume -> IO Heif_error)
+heif_mastering_display_colour_volume_decode =
+  BG.unsafePerformIO hs_bindgen_bd18c4f597c6733a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_main_brand@
+foreign import ccall unsafe "hs_bindgen_2d53f48e29c79962" hs_bindgen_2d53f48e29c79962_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_main_brand@
+hs_bindgen_2d53f48e29c79962 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2))
+hs_bindgen_2d53f48e29c79962 =
+  BG.fromFFIType hs_bindgen_2d53f48e29c79962_base
+
+{-# NOINLINE heif_read_main_brand #-}
+{-| __C declaration:__ @heif_read_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 269:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_main_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2)
+heif_read_main_brand =
+  BG.unsafePerformIO hs_bindgen_2d53f48e29c79962
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_minor_version_brand@
+foreign import ccall unsafe "hs_bindgen_d44a12ee72bb9c2e" hs_bindgen_d44a12ee72bb9c2e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_minor_version_brand@
+hs_bindgen_d44a12ee72bb9c2e :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2))
+hs_bindgen_d44a12ee72bb9c2e =
+  BG.fromFFIType hs_bindgen_d44a12ee72bb9c2e_base
+
+{-# NOINLINE heif_read_minor_version_brand #-}
+{-| __C declaration:__ @heif_read_minor_version_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 273:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_minor_version_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2)
+heif_read_minor_version_brand =
+  BG.unsafePerformIO hs_bindgen_d44a12ee72bb9c2e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_fourcc_to_brand@
+foreign import ccall unsafe "hs_bindgen_a65b895080eaa5da" hs_bindgen_a65b895080eaa5da_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_fourcc_to_brand@
+hs_bindgen_a65b895080eaa5da :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO Heif_brand2))
+hs_bindgen_a65b895080eaa5da =
+  BG.fromFFIType hs_bindgen_a65b895080eaa5da_base
+
+{-# NOINLINE heif_fourcc_to_brand #-}
+{-| __C declaration:__ @heif_fourcc_to_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 277:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_fourcc_to_brand :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO Heif_brand2)
+heif_fourcc_to_brand =
+  BG.unsafePerformIO hs_bindgen_a65b895080eaa5da
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_brand_to_fourcc@
+foreign import ccall unsafe "hs_bindgen_b67f7ec53fb11880" hs_bindgen_b67f7ec53fb11880_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_brand_to_fourcc@
+hs_bindgen_b67f7ec53fb11880 :: IO (BG.FunPtr (Heif_brand2 -> BG.Ptr BG.CChar -> IO ()))
+hs_bindgen_b67f7ec53fb11880 =
+  BG.fromFFIType hs_bindgen_b67f7ec53fb11880_base
+
+{-# NOINLINE heif_brand_to_fourcc #-}
+{-| __C declaration:__ @heif_brand_to_fourcc@
+
+    __defined at:__ @libheif\/heif_brands.h 281:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_brand_to_fourcc :: BG.FunPtr (Heif_brand2 -> BG.Ptr BG.CChar -> IO ())
+heif_brand_to_fourcc =
+  BG.unsafePerformIO hs_bindgen_b67f7ec53fb11880
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_156cb2560432b078" hs_bindgen_156cb2560432b078_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_brand@
+hs_bindgen_156cb2560432b078 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> PtrConst.PtrConst BG.CChar -> IO BG.CInt))
+hs_bindgen_156cb2560432b078 =
+  BG.fromFFIType hs_bindgen_156cb2560432b078_base
+
+{-# NOINLINE heif_has_compatible_brand #-}
+{-| __C declaration:__ @heif_has_compatible_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 289:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> PtrConst.PtrConst BG.CChar -> IO BG.CInt)
+heif_has_compatible_brand =
+  BG.unsafePerformIO hs_bindgen_156cb2560432b078
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_list_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_b8599f182b75ac09" hs_bindgen_b8599f182b75ac09_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_list_compatible_brands@
+hs_bindgen_b8599f182b75ac09 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> BG.Ptr (BG.Ptr Heif_brand2) -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_b8599f182b75ac09 =
+  BG.fromFFIType hs_bindgen_b8599f182b75ac09_base
+
+{-# NOINLINE heif_list_compatible_brands #-}
+{-| __C declaration:__ @heif_list_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_list_compatible_brands :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> BG.Ptr (BG.Ptr Heif_brand2) -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_list_compatible_brands =
+  BG.unsafePerformIO hs_bindgen_b8599f182b75ac09
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_list_of_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_58abda0a8161661e" hs_bindgen_58abda0a8161661e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_list_of_compatible_brands@
+hs_bindgen_58abda0a8161661e :: IO (BG.FunPtr (BG.Ptr Heif_brand2 -> IO ()))
+hs_bindgen_58abda0a8161661e =
+  BG.fromFFIType hs_bindgen_58abda0a8161661e_base
+
+{-# NOINLINE heif_free_list_of_compatible_brands #-}
+{-| __C declaration:__ @heif_free_list_of_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 297:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_list_of_compatible_brands :: BG.FunPtr (BG.Ptr Heif_brand2 -> IO ())
+heif_free_list_of_compatible_brands =
+  BG.unsafePerformIO hs_bindgen_58abda0a8161661e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_file_mime_type@
+foreign import ccall unsafe "hs_bindgen_c28ed4b8a33c8c55" hs_bindgen_c28ed4b8a33c8c55_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_file_mime_type@
+hs_bindgen_c28ed4b8a33c8c55 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_c28ed4b8a33c8c55 =
+  BG.fromFFIType hs_bindgen_c28ed4b8a33c8c55_base
+
+{-# NOINLINE heif_get_file_mime_type #-}
+{-| __C declaration:__ @heif_get_file_mime_type@
+
+    __defined at:__ @libheif\/heif_brands.h 318:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_file_mime_type :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO (PtrConst.PtrConst BG.CChar))
+heif_get_file_mime_type =
+  BG.unsafePerformIO hs_bindgen_c28ed4b8a33c8c55
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_filetype@
+foreign import ccall unsafe "hs_bindgen_0fe4c4f41f0c7dc4" hs_bindgen_0fe4c4f41f0c7dc4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_filetype@
+hs_bindgen_0fe4c4f41f0c7dc4 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_filetype_result))
+hs_bindgen_0fe4c4f41f0c7dc4 =
+  BG.fromFFIType hs_bindgen_0fe4c4f41f0c7dc4_base
+
+{-# NOINLINE heif_check_filetype #-}
+{-| __C declaration:__ @heif_check_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 333:27@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_filetype :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_filetype_result)
+heif_check_filetype =
+  BG.unsafePerformIO hs_bindgen_0fe4c4f41f0c7dc4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_filetype@
+foreign import ccall unsafe "hs_bindgen_d4d9d9d8a49ecb76" hs_bindgen_d4d9d9d8a49ecb76_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_filetype@
+hs_bindgen_d4d9d9d8a49ecb76 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_error))
+hs_bindgen_d4d9d9d8a49ecb76 =
+  BG.fromFFIType hs_bindgen_d4d9d9d8a49ecb76_base
+
+{-# NOINLINE heif_has_compatible_filetype #-}
+{-| __C declaration:__ @heif_has_compatible_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 345:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_filetype :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_error)
+heif_has_compatible_filetype =
+  BG.unsafePerformIO hs_bindgen_d4d9d9d8a49ecb76
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_jpeg_filetype@
+foreign import ccall unsafe "hs_bindgen_772865916a7ca5b0" hs_bindgen_772865916a7ca5b0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_jpeg_filetype@
+hs_bindgen_772865916a7ca5b0 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO BG.CInt))
+hs_bindgen_772865916a7ca5b0 =
+  BG.fromFFIType hs_bindgen_772865916a7ca5b0_base
+
+{-# NOINLINE heif_check_jpeg_filetype #-}
+{-| __C declaration:__ @heif_check_jpeg_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 348:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_jpeg_filetype :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO BG.CInt)
+heif_check_jpeg_filetype =
+  BG.unsafePerformIO hs_bindgen_772865916a7ca5b0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_main_brand@
+foreign import ccall unsafe "hs_bindgen_88607fe3b227821c" hs_bindgen_88607fe3b227821c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_main_brand@
+hs_bindgen_88607fe3b227821c :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand))
+hs_bindgen_88607fe3b227821c =
+  BG.fromFFIType hs_bindgen_88607fe3b227821c_base
+
+{-# NOINLINE heif_main_brand #-}
+{-| __C declaration:__ @heif_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 379:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_main_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand)
+heif_main_brand =
+  BG.unsafePerformIO hs_bindgen_88607fe3b227821c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_metadata_compression_method_supported@
+foreign import ccall unsafe "hs_bindgen_bc74e7adb57c426e" hs_bindgen_bc74e7adb57c426e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_metadata_compression_method_supported@
+hs_bindgen_bc74e7adb57c426e :: IO (BG.FunPtr (Heif_metadata_compression -> IO BG.CInt))
+hs_bindgen_bc74e7adb57c426e =
+  BG.fromFFIType hs_bindgen_bc74e7adb57c426e_base
+
+{-# NOINLINE heif_metadata_compression_method_supported #-}
+{-| __C declaration:__ @heif_metadata_compression_method_supported@
+
+    __defined at:__ @libheif\/heif_metadata.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_metadata_compression_method_supported :: BG.FunPtr (Heif_metadata_compression -> IO BG.CInt)
+heif_metadata_compression_method_supported =
+  BG.unsafePerformIO hs_bindgen_bc74e7adb57c426e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_metadata_blocks@
+foreign import ccall unsafe "hs_bindgen_e0549656d912a02f" hs_bindgen_e0549656d912a02f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_metadata_blocks@
+hs_bindgen_e0549656d912a02f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO BG.CInt))
+hs_bindgen_e0549656d912a02f =
+  BG.fromFFIType hs_bindgen_e0549656d912a02f_base
+
+{-# NOINLINE heif_image_handle_get_number_of_metadata_blocks #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_metadata_blocks@
+
+    __defined at:__ @libheif\/heif_metadata.h 49:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_metadata_blocks :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO BG.CInt)
+heif_image_handle_get_number_of_metadata_blocks =
+  BG.unsafePerformIO hs_bindgen_e0549656d912a02f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_metadata_block_IDs@
+foreign import ccall unsafe "hs_bindgen_7704c832da7f6498" hs_bindgen_7704c832da7f6498_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_metadata_block_IDs@
+hs_bindgen_7704c832da7f6498 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_7704c832da7f6498 =
+  BG.fromFFIType hs_bindgen_7704c832da7f6498_base
+
+{-# NOINLINE heif_image_handle_get_list_of_metadata_block_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_metadata_block_IDs@
+
+    __defined at:__ @libheif\/heif_metadata.h 55:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_metadata_block_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_metadata_block_IDs =
+  BG.unsafePerformIO hs_bindgen_7704c832da7f6498
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_type@
+foreign import ccall unsafe "hs_bindgen_6a47d662d02a1849" hs_bindgen_6a47d662d02a1849_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_type@
+hs_bindgen_6a47d662d02a1849 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_6a47d662d02a1849 =
+  BG.fromFFIType hs_bindgen_6a47d662d02a1849_base
+
+{-# NOINLINE heif_image_handle_get_metadata_type #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 64:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_metadata_type =
+  BG.unsafePerformIO hs_bindgen_6a47d662d02a1849
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_content_type@
+foreign import ccall unsafe "hs_bindgen_ff3375cb079c2c8c" hs_bindgen_ff3375cb079c2c8c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_content_type@
+hs_bindgen_ff3375cb079c2c8c :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_ff3375cb079c2c8c =
+  BG.fromFFIType hs_bindgen_ff3375cb079c2c8c_base
+
+{-# NOINLINE heif_image_handle_get_metadata_content_type #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_content_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 70:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_content_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_metadata_content_type =
+  BG.unsafePerformIO hs_bindgen_ff3375cb079c2c8c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_size@
+foreign import ccall unsafe "hs_bindgen_8f416d9d0b388a20" hs_bindgen_8f416d9d0b388a20_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_size@
+hs_bindgen_8f416d9d0b388a20 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO HsBindgen.Runtime.LibC.CSize))
+hs_bindgen_8f416d9d0b388a20 =
+  BG.fromFFIType hs_bindgen_8f416d9d0b388a20_base
+
+{-# NOINLINE heif_image_handle_get_metadata_size #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_size@
+
+    __defined at:__ @libheif\/heif_metadata.h 75:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_size :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO HsBindgen.Runtime.LibC.CSize)
+heif_image_handle_get_metadata_size =
+  BG.unsafePerformIO hs_bindgen_8f416d9d0b388a20
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata@
+foreign import ccall unsafe "hs_bindgen_f28b5d476cc0344d" hs_bindgen_f28b5d476cc0344d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata@
+hs_bindgen_f28b5d476cc0344d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_f28b5d476cc0344d =
+  BG.fromFFIType hs_bindgen_f28b5d476cc0344d_base
+
+{-# NOINLINE heif_image_handle_get_metadata #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 83:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr BG.Void -> IO Heif_error)
+heif_image_handle_get_metadata =
+  BG.unsafePerformIO hs_bindgen_f28b5d476cc0344d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_item_uri_type@
+foreign import ccall unsafe "hs_bindgen_3de552206e29c05d" hs_bindgen_3de552206e29c05d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_item_uri_type@
+hs_bindgen_3de552206e29c05d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_3de552206e29c05d =
+  BG.fromFFIType hs_bindgen_3de552206e29c05d_base
+
+{-# NOINLINE heif_image_handle_get_metadata_item_uri_type #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_item_uri_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 89:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_item_uri_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_metadata_item_uri_type =
+  BG.unsafePerformIO hs_bindgen_3de552206e29c05d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_exif_metadata@
+foreign import ccall unsafe "hs_bindgen_5a7514f5b16eac4c" hs_bindgen_5a7514f5b16eac4c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_exif_metadata@
+hs_bindgen_5a7514f5b16eac4c :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error))
+hs_bindgen_5a7514f5b16eac4c =
+  BG.fromFFIType hs_bindgen_5a7514f5b16eac4c_base
+
+{-# NOINLINE heif_context_add_exif_metadata #-}
+{-| __C declaration:__ @heif_context_add_exif_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 96:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_exif_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error)
+heif_context_add_exif_metadata =
+  BG.unsafePerformIO hs_bindgen_5a7514f5b16eac4c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata@
+foreign import ccall unsafe "hs_bindgen_3a07a46632c07914" hs_bindgen_3a07a46632c07914_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata@
+hs_bindgen_3a07a46632c07914 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error))
+hs_bindgen_3a07a46632c07914 =
+  BG.fromFFIType hs_bindgen_3a07a46632c07914_base
+
+{-# NOINLINE heif_context_add_XMP_metadata #-}
+{-| __C declaration:__ @heif_context_add_XMP_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error)
+heif_context_add_XMP_metadata =
+  BG.unsafePerformIO hs_bindgen_3a07a46632c07914
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata2@
+foreign import ccall unsafe "hs_bindgen_a68d252d2c832294" hs_bindgen_a68d252d2c832294_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata2@
+hs_bindgen_a68d252d2c832294 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> Heif_metadata_compression -> IO Heif_error))
+hs_bindgen_a68d252d2c832294 =
+  BG.fromFFIType hs_bindgen_a68d252d2c832294_base
+
+{-# NOINLINE heif_context_add_XMP_metadata2 #-}
+{-| __C declaration:__ @heif_context_add_XMP_metadata2@
+
+    __defined at:__ @libheif\/heif_metadata.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata2 :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> Heif_metadata_compression -> IO Heif_error)
+heif_context_add_XMP_metadata2 =
+  BG.unsafePerformIO hs_bindgen_a68d252d2c832294
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_metadata@
+foreign import ccall unsafe "hs_bindgen_619dad01eb9c6d46" hs_bindgen_619dad01eb9c6d46_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_metadata@
+hs_bindgen_619dad01eb9c6d46 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_619dad01eb9c6d46 =
+  BG.fromFFIType hs_bindgen_619dad01eb9c6d46_base
+
+{-# NOINLINE heif_context_add_generic_metadata #-}
+{-| __C declaration:__ @heif_context_add_generic_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_context_add_generic_metadata =
+  BG.unsafePerformIO hs_bindgen_619dad01eb9c6d46
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_uri_metadata@
+foreign import ccall unsafe "hs_bindgen_58d33e372b6c6eae" hs_bindgen_58d33e372b6c6eae_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_uri_metadata@
+hs_bindgen_58d33e372b6c6eae :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> IO Heif_error))
+hs_bindgen_58d33e372b6c6eae =
+  BG.fromFFIType hs_bindgen_58d33e372b6c6eae_base
+
+{-# NOINLINE heif_context_add_generic_uri_metadata #-}
+{-| __C declaration:__ @heif_context_add_generic_uri_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_uri_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> IO Heif_error)
+heif_context_add_generic_uri_metadata =
+  BG.unsafePerformIO hs_bindgen_58d33e372b6c6eae
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_depth_image@
+foreign import ccall unsafe "hs_bindgen_3cd06e15607887df" hs_bindgen_3cd06e15607887df_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_depth_image@
+hs_bindgen_3cd06e15607887df :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_3cd06e15607887df =
+  BG.fromFFIType hs_bindgen_3cd06e15607887df_base
+
+{-# NOINLINE heif_image_handle_has_depth_image #-}
+{-| __C declaration:__ @heif_image_handle_has_depth_image@
+
+    __defined at:__ @libheif\/heif_aux_images.h 39:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_depth_image :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_depth_image =
+  BG.unsafePerformIO hs_bindgen_3cd06e15607887df
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_depth_images@
+foreign import ccall unsafe "hs_bindgen_aa3619e2616c31b9" hs_bindgen_aa3619e2616c31b9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_depth_images@
+hs_bindgen_aa3619e2616c31b9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_aa3619e2616c31b9 =
+  BG.fromFFIType hs_bindgen_aa3619e2616c31b9_base
+
+{-# NOINLINE heif_image_handle_get_number_of_depth_images #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_depth_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_depth_images :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_number_of_depth_images =
+  BG.unsafePerformIO hs_bindgen_aa3619e2616c31b9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_depth_image_IDs@
+foreign import ccall unsafe "hs_bindgen_c7753ca6962a462d" hs_bindgen_c7753ca6962a462d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_depth_image_IDs@
+hs_bindgen_c7753ca6962a462d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_c7753ca6962a462d =
+  BG.fromFFIType hs_bindgen_c7753ca6962a462d_base
+
+{-# NOINLINE heif_image_handle_get_list_of_depth_image_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_depth_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 45:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_depth_image_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_depth_image_IDs =
+  BG.unsafePerformIO hs_bindgen_c7753ca6962a462d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_handle@
+foreign import ccall unsafe "hs_bindgen_c1ab9b65fc984e98" hs_bindgen_c1ab9b65fc984e98_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_handle@
+hs_bindgen_c1ab9b65fc984e98 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_c1ab9b65fc984e98 =
+  BG.fromFFIType hs_bindgen_c1ab9b65fc984e98_base
+
+{-# NOINLINE heif_image_handle_get_depth_image_handle #-}
+{-| __C declaration:__ @heif_image_handle_get_depth_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_handle :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_image_handle_get_depth_image_handle =
+  BG.unsafePerformIO hs_bindgen_c1ab9b65fc984e98
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_depth_representation_info_free@
+foreign import ccall unsafe "hs_bindgen_bfa498ceb1f388eb" hs_bindgen_bfa498ceb1f388eb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_depth_representation_info_free@
+hs_bindgen_bfa498ceb1f388eb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_depth_representation_info -> IO ()))
+hs_bindgen_bfa498ceb1f388eb =
+  BG.fromFFIType hs_bindgen_bfa498ceb1f388eb_base
+
+{-# NOINLINE heif_depth_representation_info_free #-}
+{-| __C declaration:__ @heif_depth_representation_info_free@
+
+    __defined at:__ @libheif\/heif_aux_images.h 87:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_depth_representation_info_free :: BG.FunPtr (PtrConst.PtrConst Heif_depth_representation_info -> IO ())
+heif_depth_representation_info_free =
+  BG.unsafePerformIO hs_bindgen_bfa498ceb1f388eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_representation_info@
+foreign import ccall unsafe "hs_bindgen_f7def4edb675f3a7" hs_bindgen_f7def4edb675f3a7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_representation_info@
+hs_bindgen_f7def4edb675f3a7 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info) -> IO BG.CInt))
+hs_bindgen_f7def4edb675f3a7 =
+  BG.fromFFIType hs_bindgen_f7def4edb675f3a7_base
+
+{-# NOINLINE heif_image_handle_get_depth_image_representation_info #-}
+{-| __C declaration:__ @heif_image_handle_get_depth_image_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 95:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_representation_info :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info) -> IO BG.CInt)
+heif_image_handle_get_depth_image_representation_info =
+  BG.unsafePerformIO hs_bindgen_f7def4edb675f3a7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_thumbnails@
+foreign import ccall unsafe "hs_bindgen_388a83c522945b96" hs_bindgen_388a83c522945b96_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_thumbnails@
+hs_bindgen_388a83c522945b96 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_388a83c522945b96 =
+  BG.fromFFIType hs_bindgen_388a83c522945b96_base
+
+{-# NOINLINE heif_image_handle_get_number_of_thumbnails #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_thumbnails@
+
+    __defined at:__ @libheif\/heif_aux_images.h 105:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_thumbnails :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_number_of_thumbnails =
+  BG.unsafePerformIO hs_bindgen_388a83c522945b96
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_thumbnail_IDs@
+foreign import ccall unsafe "hs_bindgen_c9977cfc42d63a17" hs_bindgen_c9977cfc42d63a17_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_thumbnail_IDs@
+hs_bindgen_c9977cfc42d63a17 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_c9977cfc42d63a17 =
+  BG.fromFFIType hs_bindgen_c9977cfc42d63a17_base
+
+{-# NOINLINE heif_image_handle_get_list_of_thumbnail_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_thumbnail_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 108:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_thumbnail_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_thumbnail_IDs =
+  BG.unsafePerformIO hs_bindgen_c9977cfc42d63a17
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_thumbnail@
+foreign import ccall unsafe "hs_bindgen_7b4335dfc28e8e80" hs_bindgen_7b4335dfc28e8e80_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_thumbnail@
+hs_bindgen_7b4335dfc28e8e80 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_7b4335dfc28e8e80 =
+  BG.fromFFIType hs_bindgen_7b4335dfc28e8e80_base
+
+{-# NOINLINE heif_image_handle_get_thumbnail #-}
+{-| __C declaration:__ @heif_image_handle_get_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 113:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_thumbnail :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_image_handle_get_thumbnail =
+  BG.unsafePerformIO hs_bindgen_7b4335dfc28e8e80
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_thumbnail@
+foreign import ccall unsafe "hs_bindgen_492f9a0d3f555649" hs_bindgen_492f9a0d3f555649_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_thumbnail@
+hs_bindgen_492f9a0d3f555649 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.CInt -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_492f9a0d3f555649 =
+  BG.fromFFIType hs_bindgen_492f9a0d3f555649_base
+
+{-# NOINLINE heif_context_encode_thumbnail #-}
+{-| __C declaration:__ @heif_context_encode_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_thumbnail :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.CInt -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_encode_thumbnail =
+  BG.unsafePerformIO hs_bindgen_492f9a0d3f555649
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_assign_thumbnail@
+foreign import ccall unsafe "hs_bindgen_d6beebdf16f8801e" hs_bindgen_d6beebdf16f8801e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_assign_thumbnail@
+hs_bindgen_d6beebdf16f8801e :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_image_handle -> IO Heif_error))
+hs_bindgen_d6beebdf16f8801e =
+  BG.fromFFIType hs_bindgen_d6beebdf16f8801e_base
+
+{-# NOINLINE heif_context_assign_thumbnail #-}
+{-| __C declaration:__ @heif_context_assign_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 136:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_assign_thumbnail :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_image_handle -> IO Heif_error)
+heif_context_assign_thumbnail =
+  BG.unsafePerformIO hs_bindgen_d6beebdf16f8801e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_auxiliary_images@
+foreign import ccall unsafe "hs_bindgen_fbf5259f8601a805" hs_bindgen_fbf5259f8601a805_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_auxiliary_images@
+hs_bindgen_fbf5259f8601a805 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> IO BG.CInt))
+hs_bindgen_fbf5259f8601a805 =
+  BG.fromFFIType hs_bindgen_fbf5259f8601a805_base
+
+{-# NOINLINE heif_image_handle_get_number_of_auxiliary_images #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_auxiliary_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_auxiliary_images :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_number_of_auxiliary_images =
+  BG.unsafePerformIO hs_bindgen_fbf5259f8601a805
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_auxiliary_image_IDs@
+foreign import ccall unsafe "hs_bindgen_52a5c3a1d8bf248a" hs_bindgen_52a5c3a1d8bf248a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_auxiliary_image_IDs@
+hs_bindgen_52a5c3a1d8bf248a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_52a5c3a1d8bf248a =
+  BG.fromFFIType hs_bindgen_52a5c3a1d8bf248a_base
+
+{-# NOINLINE heif_image_handle_get_list_of_auxiliary_image_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_auxiliary_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 152:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_auxiliary_image_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_auxiliary_image_IDs =
+  BG.unsafePerformIO hs_bindgen_52a5c3a1d8bf248a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_2806604f6185b8f8" hs_bindgen_2806604f6185b8f8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_type@
+hs_bindgen_2806604f6185b8f8 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO Heif_error))
+hs_bindgen_2806604f6185b8f8 =
+  BG.fromFFIType hs_bindgen_2806604f6185b8f8_base
+
+{-# NOINLINE heif_image_handle_get_auxiliary_type #-}
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 158:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO Heif_error)
+heif_image_handle_get_auxiliary_type =
+  BG.unsafePerformIO hs_bindgen_2806604f6185b8f8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_c6d7022e030cb190" hs_bindgen_c6d7022e030cb190_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release_auxiliary_type@
+hs_bindgen_c6d7022e030cb190 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ()))
+hs_bindgen_c6d7022e030cb190 =
+  BG.fromFFIType hs_bindgen_c6d7022e030cb190_base
+
+{-# NOINLINE heif_image_handle_release_auxiliary_type #-}
+{-| __C declaration:__ @heif_image_handle_release_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 162:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release_auxiliary_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ())
+heif_image_handle_release_auxiliary_type =
+  BG.unsafePerformIO hs_bindgen_c6d7022e030cb190
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_image_handle@
+foreign import ccall unsafe "hs_bindgen_3d5ece2e0e4e63a9" hs_bindgen_3d5ece2e0e4e63a9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_image_handle@
+hs_bindgen_3d5ece2e0e4e63a9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_3d5ece2e0e4e63a9 =
+  BG.fromFFIType hs_bindgen_3d5ece2e0e4e63a9_base
+
+{-# NOINLINE heif_image_handle_get_auxiliary_image_handle #-}
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_image_handle :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_image_handle_get_auxiliary_image_handle =
+  BG.unsafePerformIO hs_bindgen_3d5ece2e0e4e63a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_free_auxiliary_types@
+foreign import ccall unsafe "hs_bindgen_e653c638946083c6" hs_bindgen_e653c638946083c6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_free_auxiliary_types@
+hs_bindgen_e653c638946083c6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ()))
+hs_bindgen_e653c638946083c6 =
+  BG.fromFFIType hs_bindgen_e653c638946083c6_base
+
+{-# NOINLINE heif_image_handle_free_auxiliary_types #-}
+{-| __C declaration:__ @heif_image_handle_free_auxiliary_types@
+
+    __defined at:__ @libheif\/heif_aux_images.h 175:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_free_auxiliary_types :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ())
+heif_image_handle_free_auxiliary_types =
+  BG.unsafePerformIO hs_bindgen_e653c638946083c6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_entity_groups@
+foreign import ccall unsafe "hs_bindgen_631e87ff99030866" hs_bindgen_631e87ff99030866_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_entity_groups@
+hs_bindgen_631e87ff99030866 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_context -> HsBindgen.Runtime.LibC.Word32 -> Heif_item_id -> BG.Ptr BG.CInt -> IO (BG.Ptr Heif_entity_group)))
+hs_bindgen_631e87ff99030866 =
+  BG.fromFFIType hs_bindgen_631e87ff99030866_base
+
+{-# NOINLINE heif_context_get_entity_groups #-}
+{-| __C declaration:__ @heif_context_get_entity_groups@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 46:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_entity_groups :: BG.FunPtr (PtrConst.PtrConst Heif_context -> HsBindgen.Runtime.LibC.Word32 -> Heif_item_id -> BG.Ptr BG.CInt -> IO (BG.Ptr Heif_entity_group))
+heif_context_get_entity_groups =
+  BG.unsafePerformIO hs_bindgen_631e87ff99030866
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_entity_groups_release@
+foreign import ccall unsafe "hs_bindgen_dff5ea5157033446" hs_bindgen_dff5ea5157033446_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_entity_groups_release@
+hs_bindgen_dff5ea5157033446 :: IO (BG.FunPtr (BG.Ptr Heif_entity_group -> BG.CInt -> IO ()))
+hs_bindgen_dff5ea5157033446 =
+  BG.fromFFIType hs_bindgen_dff5ea5157033446_base
+
+{-# NOINLINE heif_entity_groups_release #-}
+{-| __C declaration:__ @heif_entity_groups_release@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 53:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_entity_groups_release :: BG.FunPtr (BG.Ptr Heif_entity_group -> BG.CInt -> IO ())
+heif_entity_groups_release =
+  BG.unsafePerformIO hs_bindgen_dff5ea5157033446
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_global_security_limits@
+foreign import ccall unsafe "hs_bindgen_513834deee887311" hs_bindgen_513834deee887311_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_global_security_limits@
+hs_bindgen_513834deee887311 :: IO (BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits)))
+hs_bindgen_513834deee887311 =
+  BG.fromFFIType hs_bindgen_513834deee887311_base
+
+{-# NOINLINE heif_get_global_security_limits #-}
+{-| __C declaration:__ @heif_get_global_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 94:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_global_security_limits :: BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits))
+heif_get_global_security_limits =
+  BG.unsafePerformIO hs_bindgen_513834deee887311
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_disabled_security_limits@
+foreign import ccall unsafe "hs_bindgen_9841ea4e972c1a98" hs_bindgen_9841ea4e972c1a98_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_disabled_security_limits@
+hs_bindgen_9841ea4e972c1a98 :: IO (BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits)))
+hs_bindgen_9841ea4e972c1a98 =
+  BG.fromFFIType hs_bindgen_9841ea4e972c1a98_base
+
+{-# NOINLINE heif_get_disabled_security_limits #-}
+{-| __C declaration:__ @heif_get_disabled_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 98:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_disabled_security_limits :: BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits))
+heif_get_disabled_security_limits =
+  BG.unsafePerformIO hs_bindgen_9841ea4e972c1a98
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_security_limits@
+foreign import ccall unsafe "hs_bindgen_79af356ea84ef299" hs_bindgen_79af356ea84ef299_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_security_limits@
+hs_bindgen_79af356ea84ef299 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_context -> IO (BG.Ptr Heif_security_limits)))
+hs_bindgen_79af356ea84ef299 =
+  BG.fromFFIType hs_bindgen_79af356ea84ef299_base
+
+{-# NOINLINE heif_context_get_security_limits #-}
+{-| __C declaration:__ @heif_context_get_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 103:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_security_limits :: BG.FunPtr (PtrConst.PtrConst Heif_context -> IO (BG.Ptr Heif_security_limits))
+heif_context_get_security_limits =
+  BG.unsafePerformIO hs_bindgen_79af356ea84ef299
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_security_limits@
+foreign import ccall unsafe "hs_bindgen_79e7cc69a856ca88" hs_bindgen_79e7cc69a856ca88_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_security_limits@
+hs_bindgen_79e7cc69a856ca88 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error))
+hs_bindgen_79e7cc69a856ca88 =
+  BG.fromFFIType hs_bindgen_79e7cc69a856ca88_base
+
+{-# NOINLINE heif_context_set_security_limits #-}
+{-| __C declaration:__ @heif_context_set_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_security_limits :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error)
+heif_context_set_security_limits =
+  BG.unsafePerformIO hs_bindgen_79e7cc69a856ca88
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_maximum_image_size_limit@
+foreign import ccall unsafe "hs_bindgen_70c7f35fa6d1722f" hs_bindgen_70c7f35fa6d1722f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_maximum_image_size_limit@
+hs_bindgen_70c7f35fa6d1722f :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_70c7f35fa6d1722f =
+  BG.fromFFIType hs_bindgen_70c7f35fa6d1722f_base
+
+{-# NOINLINE heif_context_set_maximum_image_size_limit #-}
+{-| __C declaration:__ @heif_context_set_maximum_image_size_limit@
+
+    __defined at:__ @libheif\/heif_security.h 117:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_maximum_image_size_limit :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_maximum_image_size_limit =
+  BG.unsafePerformIO hs_bindgen_70c7f35fa6d1722f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_alloc@
+foreign import ccall unsafe "hs_bindgen_bd908a73a9cd1c97" hs_bindgen_bd908a73a9cd1c97_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_alloc@
+hs_bindgen_bd908a73a9cd1c97 :: IO (BG.FunPtr (IO (BG.Ptr Heif_context)))
+hs_bindgen_bd908a73a9cd1c97 =
+  BG.fromFFIType hs_bindgen_bd908a73a9cd1c97_base
+
+{-# NOINLINE heif_context_alloc #-}
+{-| __C declaration:__ @heif_context_alloc@
+
+    __defined at:__ @libheif\/heif_context.h 130:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_alloc :: BG.FunPtr (IO (BG.Ptr Heif_context))
+heif_context_alloc =
+  BG.unsafePerformIO hs_bindgen_bd908a73a9cd1c97
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_free@
+foreign import ccall unsafe "hs_bindgen_7e7ac4562d12dc38" hs_bindgen_7e7ac4562d12dc38_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_free@
+hs_bindgen_7e7ac4562d12dc38 :: IO (BG.FunPtr (BG.Ptr Heif_context -> IO ()))
+hs_bindgen_7e7ac4562d12dc38 =
+  BG.fromFFIType hs_bindgen_7e7ac4562d12dc38_base
+
+{-# NOINLINE heif_context_free #-}
+{-| __C declaration:__ @heif_context_free@
+
+    __defined at:__ @libheif\/heif_context.h 134:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_free :: BG.FunPtr (BG.Ptr Heif_context -> IO ())
+heif_context_free =
+  BG.unsafePerformIO hs_bindgen_7e7ac4562d12dc38
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_file@
+foreign import ccall unsafe "hs_bindgen_7b3d06c1227d3049" hs_bindgen_7b3d06c1227d3049_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_file@
+hs_bindgen_7b3d06c1227d3049 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_7b3d06c1227d3049 =
+  BG.fromFFIType hs_bindgen_7b3d06c1227d3049_base
+
+{-# NOINLINE heif_context_read_from_file #-}
+{-| __C declaration:__ @heif_context_read_from_file@
+
+    __defined at:__ @libheif\/heif_context.h 237:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_file :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_file =
+  BG.unsafePerformIO hs_bindgen_7b3d06c1227d3049
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory@
+foreign import ccall unsafe "hs_bindgen_fd7f2a7e1900e79b" hs_bindgen_fd7f2a7e1900e79b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory@
+hs_bindgen_fd7f2a7e1900e79b :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_fd7f2a7e1900e79b =
+  BG.fromFFIType hs_bindgen_fd7f2a7e1900e79b_base
+
+{-# NOINLINE heif_context_read_from_memory #-}
+{-| __C declaration:__ @heif_context_read_from_memory@
+
+    __defined at:__ @libheif\/heif_context.h 244:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_memory =
+  BG.unsafePerformIO hs_bindgen_fd7f2a7e1900e79b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory_without_copy@
+foreign import ccall unsafe "hs_bindgen_ead5dd2b26474984" hs_bindgen_ead5dd2b26474984_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory_without_copy@
+hs_bindgen_ead5dd2b26474984 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_ead5dd2b26474984 =
+  BG.fromFFIType hs_bindgen_ead5dd2b26474984_base
+
+{-# NOINLINE heif_context_read_from_memory_without_copy #-}
+{-| __C declaration:__ @heif_context_read_from_memory_without_copy@
+
+    __defined at:__ @libheif\/heif_context.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory_without_copy :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_memory_without_copy =
+  BG.unsafePerformIO hs_bindgen_ead5dd2b26474984
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_reader@
+foreign import ccall unsafe "hs_bindgen_46205cdd2b194712" hs_bindgen_46205cdd2b194712_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_reader@
+hs_bindgen_46205cdd2b194712 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_reader -> BG.Ptr BG.Void -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_46205cdd2b194712 =
+  BG.fromFFIType hs_bindgen_46205cdd2b194712_base
+
+{-# NOINLINE heif_context_read_from_reader #-}
+{-| __C declaration:__ @heif_context_read_from_reader@
+
+    __defined at:__ @libheif\/heif_context.h 256:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_reader :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_reader -> BG.Ptr BG.Void -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_reader =
+  BG.unsafePerformIO hs_bindgen_46205cdd2b194712
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_number_of_top_level_images@
+foreign import ccall unsafe "hs_bindgen_7d9f8f6a11d1d0b3" hs_bindgen_7d9f8f6a11d1d0b3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_number_of_top_level_images@
+hs_bindgen_7d9f8f6a11d1d0b3 :: IO (BG.FunPtr (BG.Ptr Heif_context -> IO BG.CInt))
+hs_bindgen_7d9f8f6a11d1d0b3 =
+  BG.fromFFIType hs_bindgen_7d9f8f6a11d1d0b3_base
+
+{-# NOINLINE heif_context_get_number_of_top_level_images #-}
+{-| __C declaration:__ @heif_context_get_number_of_top_level_images@
+
+    __defined at:__ @libheif\/heif_context.h 265:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_number_of_top_level_images :: BG.FunPtr (BG.Ptr Heif_context -> IO BG.CInt)
+heif_context_get_number_of_top_level_images =
+  BG.unsafePerformIO hs_bindgen_7d9f8f6a11d1d0b3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_is_top_level_image_ID@
+foreign import ccall unsafe "hs_bindgen_8c9ac942d92215db" hs_bindgen_8c9ac942d92215db_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_is_top_level_image_ID@
+hs_bindgen_8c9ac942d92215db :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> IO BG.CInt))
+hs_bindgen_8c9ac942d92215db =
+  BG.fromFFIType hs_bindgen_8c9ac942d92215db_base
+
+{-# NOINLINE heif_context_is_top_level_image_ID #-}
+{-| __C declaration:__ @heif_context_is_top_level_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 268:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_is_top_level_image_ID :: BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> IO BG.CInt)
+heif_context_is_top_level_image_ID =
+  BG.unsafePerformIO hs_bindgen_8c9ac942d92215db
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_list_of_top_level_image_IDs@
+foreign import ccall unsafe "hs_bindgen_8300165269c133fb" hs_bindgen_8300165269c133fb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_list_of_top_level_image_IDs@
+hs_bindgen_8300165269c133fb :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_8300165269c133fb =
+  BG.fromFFIType hs_bindgen_8300165269c133fb_base
+
+{-# NOINLINE heif_context_get_list_of_top_level_image_IDs #-}
+{-| __C declaration:__ @heif_context_get_list_of_top_level_image_IDs@
+
+    __defined at:__ @libheif\/heif_context.h 273:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_list_of_top_level_image_IDs :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_context_get_list_of_top_level_image_IDs =
+  BG.unsafePerformIO hs_bindgen_8300165269c133fb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_ID@
+foreign import ccall unsafe "hs_bindgen_0d98fd3ca84ab54a" hs_bindgen_0d98fd3ca84ab54a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_ID@
+hs_bindgen_0d98fd3ca84ab54a :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> IO Heif_error))
+hs_bindgen_0d98fd3ca84ab54a =
+  BG.fromFFIType hs_bindgen_0d98fd3ca84ab54a_base
+
+{-# NOINLINE heif_context_get_primary_image_ID #-}
+{-| __C declaration:__ @heif_context_get_primary_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 278:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_ID :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> IO Heif_error)
+heif_context_get_primary_image_ID =
+  BG.unsafePerformIO hs_bindgen_0d98fd3ca84ab54a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_handle@
+foreign import ccall unsafe "hs_bindgen_960524c654a2bcef" hs_bindgen_960524c654a2bcef_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_handle@
+hs_bindgen_960524c654a2bcef :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_960524c654a2bcef =
+  BG.fromFFIType hs_bindgen_960524c654a2bcef_base
+
+{-# NOINLINE heif_context_get_primary_image_handle #-}
+{-| __C declaration:__ @heif_context_get_primary_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 283:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_handle :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_get_primary_image_handle =
+  BG.unsafePerformIO hs_bindgen_960524c654a2bcef
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_image_handle@
+foreign import ccall unsafe "hs_bindgen_398d616a73d2c66e" hs_bindgen_398d616a73d2c66e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_image_handle@
+hs_bindgen_398d616a73d2c66e :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_398d616a73d2c66e =
+  BG.fromFFIType hs_bindgen_398d616a73d2c66e_base
+
+{-# NOINLINE heif_context_get_image_handle #-}
+{-| __C declaration:__ @heif_context_get_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 288:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_image_handle :: BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_get_image_handle =
+  BG.unsafePerformIO hs_bindgen_398d616a73d2c66e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_debug_dump_boxes_to_file@
+foreign import ccall unsafe "hs_bindgen_8a216f7524a20aca" hs_bindgen_8a216f7524a20aca_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_debug_dump_boxes_to_file@
+hs_bindgen_8a216f7524a20aca :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_8a216f7524a20aca =
+  BG.fromFFIType hs_bindgen_8a216f7524a20aca_base
+
+{-# NOINLINE heif_context_debug_dump_boxes_to_file #-}
+{-| __C declaration:__ @heif_context_debug_dump_boxes_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 296:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_debug_dump_boxes_to_file :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_debug_dump_boxes_to_file =
+  BG.unsafePerformIO hs_bindgen_8a216f7524a20aca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_write_mini_format@
+foreign import ccall unsafe "hs_bindgen_15394ba4caf334ce" hs_bindgen_15394ba4caf334ce_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_write_mini_format@
+hs_bindgen_15394ba4caf334ce :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_15394ba4caf334ce =
+  BG.fromFFIType hs_bindgen_15394ba4caf334ce_base
+
+{-# NOINLINE heif_context_set_write_mini_format #-}
+{-| __C declaration:__ @heif_context_set_write_mini_format@
+
+    __defined at:__ @libheif\/heif_context.h 309:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_write_mini_format :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_write_mini_format =
+  BG.unsafePerformIO hs_bindgen_15394ba4caf334ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write_to_file@
+foreign import ccall unsafe "hs_bindgen_f73779d349ac09bf" hs_bindgen_f73779d349ac09bf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write_to_file@
+hs_bindgen_f73779d349ac09bf :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_f73779d349ac09bf =
+  BG.fromFFIType hs_bindgen_f73779d349ac09bf_base
+
+{-# NOINLINE heif_context_write_to_file #-}
+{-| __C declaration:__ @heif_context_write_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 316:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write_to_file :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_context_write_to_file =
+  BG.unsafePerformIO hs_bindgen_f73779d349ac09bf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write@
+foreign import ccall unsafe "hs_bindgen_c9c017704fa40d19" hs_bindgen_c9c017704fa40d19_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write@
+hs_bindgen_c9c017704fa40d19 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_writer -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_c9c017704fa40d19 =
+  BG.fromFFIType hs_bindgen_c9c017704fa40d19_base
+
+{-# NOINLINE heif_context_write #-}
+{-| __C declaration:__ @heif_context_write@
+
+    __defined at:__ @libheif\/heif_context.h 335:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_writer -> BG.Ptr BG.Void -> IO Heif_error)
+heif_context_write =
+  BG.unsafePerformIO hs_bindgen_c9c017704fa40d19
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_19218fb783c96539" hs_bindgen_19218fb783c96539_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_encoder_for_format@
+hs_bindgen_19218fb783c96539 :: IO (BG.FunPtr (Heif_compression_format -> IO BG.CInt))
+hs_bindgen_19218fb783c96539 =
+  BG.fromFFIType hs_bindgen_19218fb783c96539_base
+
+{-# NOINLINE heif_have_encoder_for_format #-}
+{-| __C declaration:__ @heif_have_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 63:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_encoder_for_format :: BG.FunPtr (Heif_compression_format -> IO BG.CInt)
+heif_have_encoder_for_format =
+  BG.unsafePerformIO hs_bindgen_19218fb783c96539
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_49fc5cfaef4436f7" hs_bindgen_49fc5cfaef4436f7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_encoder_descriptors@
+hs_bindgen_49fc5cfaef4436f7 :: IO (BG.FunPtr (Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt))
+hs_bindgen_49fc5cfaef4436f7 =
+  BG.fromFFIType hs_bindgen_49fc5cfaef4436f7_base
+
+{-# NOINLINE heif_get_encoder_descriptors #-}
+{-| __C declaration:__ @heif_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 72:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_encoder_descriptors :: BG.FunPtr (Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt)
+heif_get_encoder_descriptors =
+  BG.unsafePerformIO hs_bindgen_49fc5cfaef4436f7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_cddd49c618fa6467" hs_bindgen_cddd49c618fa6467_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_name@
+hs_bindgen_cddd49c618fa6467 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_cddd49c618fa6467 =
+  BG.fromFFIType hs_bindgen_cddd49c618fa6467_base
+
+{-# NOINLINE heif_encoder_descriptor_get_name #-}
+{-| __C declaration:__ @heif_encoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 79:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_descriptor_get_name =
+  BG.unsafePerformIO hs_bindgen_cddd49c618fa6467
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_08451a95e7fb6e4d" hs_bindgen_08451a95e7fb6e4d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_id_name@
+hs_bindgen_08451a95e7fb6e4d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_08451a95e7fb6e4d =
+  BG.fromFFIType hs_bindgen_08451a95e7fb6e4d_base
+
+{-# NOINLINE heif_encoder_descriptor_get_id_name #-}
+{-| __C declaration:__ @heif_encoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 84:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_id_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_descriptor_get_id_name =
+  BG.unsafePerformIO hs_bindgen_08451a95e7fb6e4d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_compression_format@
+foreign import ccall unsafe "hs_bindgen_e5339b28bc83fbca" hs_bindgen_e5339b28bc83fbca_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_compression_format@
+hs_bindgen_e5339b28bc83fbca :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO Heif_compression_format))
+hs_bindgen_e5339b28bc83fbca =
+  BG.fromFFIType hs_bindgen_e5339b28bc83fbca_base
+
+{-# NOINLINE heif_encoder_descriptor_get_compression_format #-}
+{-| __C declaration:__ @heif_encoder_descriptor_get_compression_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 88:1@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_compression_format :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO Heif_compression_format)
+heif_encoder_descriptor_get_compression_format =
+  BG.unsafePerformIO hs_bindgen_e5339b28bc83fbca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_7ad6908eba03875a" hs_bindgen_7ad6908eba03875a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossy_compression@
+hs_bindgen_7ad6908eba03875a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_7ad6908eba03875a =
+  BG.fromFFIType hs_bindgen_7ad6908eba03875a_base
+
+{-# NOINLINE heif_encoder_descriptor_supports_lossy_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 91:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossy_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supports_lossy_compression =
+  BG.unsafePerformIO hs_bindgen_7ad6908eba03875a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_ae06a426df892191" hs_bindgen_ae06a426df892191_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossless_compression@
+hs_bindgen_ae06a426df892191 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_ae06a426df892191 =
+  BG.fromFFIType hs_bindgen_ae06a426df892191_base
+
+{-# NOINLINE heif_encoder_descriptor_supports_lossless_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 94:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossless_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supports_lossless_compression =
+  BG.unsafePerformIO hs_bindgen_ae06a426df892191
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder@
+foreign import ccall unsafe "hs_bindgen_007a504ee5520689" hs_bindgen_007a504ee5520689_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder@
+hs_bindgen_007a504ee5520689 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_encoder_descriptor -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error))
+hs_bindgen_007a504ee5520689 =
+  BG.fromFFIType hs_bindgen_007a504ee5520689_base
+
+{-# NOINLINE heif_context_get_encoder #-}
+{-| __C declaration:__ @heif_context_get_encoder@
+
+    __defined at:__ @libheif\/heif_encoding.h 99:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_encoder_descriptor -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error)
+heif_context_get_encoder =
+  BG.unsafePerformIO hs_bindgen_007a504ee5520689
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_9f20d0bc6d1e9792" hs_bindgen_9f20d0bc6d1e9792_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_for_format@
+hs_bindgen_9f20d0bc6d1e9792 :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error))
+hs_bindgen_9f20d0bc6d1e9792 =
+  BG.fromFFIType hs_bindgen_9f20d0bc6d1e9792_base
+
+{-# NOINLINE heif_context_get_encoder_for_format #-}
+{-| __C declaration:__ @heif_context_get_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 106:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_for_format :: BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error)
+heif_context_get_encoder_for_format =
+  BG.unsafePerformIO hs_bindgen_9f20d0bc6d1e9792
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_release@
+foreign import ccall unsafe "hs_bindgen_e2c3d8f3b52f1fe3" hs_bindgen_e2c3d8f3b52f1fe3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_release@
+hs_bindgen_e2c3d8f3b52f1fe3 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> IO ()))
+hs_bindgen_e2c3d8f3b52f1fe3 =
+  BG.fromFFIType hs_bindgen_e2c3d8f3b52f1fe3_base
+
+{-# NOINLINE heif_encoder_release #-}
+{-| __C declaration:__ @heif_encoder_release@
+
+    __defined at:__ @libheif\/heif_encoding.h 114:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_release :: BG.FunPtr (BG.Ptr Heif_encoder -> IO ())
+heif_encoder_release =
+  BG.unsafePerformIO hs_bindgen_e2c3d8f3b52f1fe3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_name@
+foreign import ccall unsafe "hs_bindgen_ee9152d12b81ac2d" hs_bindgen_ee9152d12b81ac2d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_name@
+hs_bindgen_ee9152d12b81ac2d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_ee9152d12b81ac2d =
+  BG.fromFFIType hs_bindgen_ee9152d12b81ac2d_base
+
+{-# NOINLINE heif_encoder_get_name #-}
+{-| __C declaration:__ @heif_encoder_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 118:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_get_name =
+  BG.unsafePerformIO hs_bindgen_ee9152d12b81ac2d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossy_quality@
+foreign import ccall unsafe "hs_bindgen_19895ed41764990f" hs_bindgen_19895ed41764990f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossy_quality@
+hs_bindgen_19895ed41764990f :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error))
+hs_bindgen_19895ed41764990f =
+  BG.fromFFIType hs_bindgen_19895ed41764990f_base
+
+{-# NOINLINE heif_encoder_set_lossy_quality #-}
+{-| __C declaration:__ @heif_encoder_set_lossy_quality@
+
+    __defined at:__ @libheif\/heif_encoding.h 134:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossy_quality :: BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error)
+heif_encoder_set_lossy_quality =
+  BG.unsafePerformIO hs_bindgen_19895ed41764990f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossless@
+foreign import ccall unsafe "hs_bindgen_9c9779dea220b374" hs_bindgen_9c9779dea220b374_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossless@
+hs_bindgen_9c9779dea220b374 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error))
+hs_bindgen_9c9779dea220b374 =
+  BG.fromFFIType hs_bindgen_9c9779dea220b374_base
+
+{-# NOINLINE heif_encoder_set_lossless #-}
+{-| __C declaration:__ @heif_encoder_set_lossless@
+
+    __defined at:__ @libheif\/heif_encoding.h 137:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossless :: BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error)
+heif_encoder_set_lossless =
+  BG.unsafePerformIO hs_bindgen_9c9779dea220b374
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_logging_level@
+foreign import ccall unsafe "hs_bindgen_964eca1706d5e05d" hs_bindgen_964eca1706d5e05d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_logging_level@
+hs_bindgen_964eca1706d5e05d :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error))
+hs_bindgen_964eca1706d5e05d =
+  BG.fromFFIType hs_bindgen_964eca1706d5e05d_base
+
+{-# NOINLINE heif_encoder_set_logging_level #-}
+{-| __C declaration:__ @heif_encoder_set_logging_level@
+
+    __defined at:__ @libheif\/heif_encoding.h 141:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_logging_level :: BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error)
+heif_encoder_set_logging_level =
+  BG.unsafePerformIO hs_bindgen_964eca1706d5e05d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_list_parameters@
+foreign import ccall unsafe "hs_bindgen_b1199cd8648209be" hs_bindgen_b1199cd8648209be_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_list_parameters@
+hs_bindgen_b1199cd8648209be :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))))
+hs_bindgen_b1199cd8648209be =
+  BG.fromFFIType hs_bindgen_b1199cd8648209be_base
+
+{-# NOINLINE heif_encoder_list_parameters #-}
+{-| __C declaration:__ @heif_encoder_list_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 147:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_list_parameters :: BG.FunPtr (BG.Ptr Heif_encoder -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter)))
+heif_encoder_list_parameters =
+  BG.unsafePerformIO hs_bindgen_b1199cd8648209be
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_name@
+foreign import ccall unsafe "hs_bindgen_d6e627b5fca93233" hs_bindgen_d6e627b5fca93233_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_name@
+hs_bindgen_d6e627b5fca93233 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_d6e627b5fca93233 =
+  BG.fromFFIType hs_bindgen_d6e627b5fca93233_base
+
+{-# NOINLINE heif_encoder_parameter_get_name #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 151:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_parameter_get_name =
+  BG.unsafePerformIO hs_bindgen_d6e627b5fca93233
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_type@
+foreign import ccall unsafe "hs_bindgen_980079513f87c118" hs_bindgen_980079513f87c118_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_type@
+hs_bindgen_980079513f87c118 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO Heif_encoder_parameter_type))
+hs_bindgen_980079513f87c118 =
+  BG.fromFFIType hs_bindgen_980079513f87c118_base
+
+{-# NOINLINE heif_encoder_parameter_get_type #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 163:34@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_type :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO Heif_encoder_parameter_type)
+heif_encoder_parameter_get_type =
+  BG.unsafePerformIO hs_bindgen_980079513f87c118
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_range@
+foreign import ccall unsafe "hs_bindgen_6a3070253dfc382e" hs_bindgen_6a3070253dfc382e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_range@
+hs_bindgen_6a3070253dfc382e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_6a3070253dfc382e =
+  BG.fromFFIType hs_bindgen_6a3070253dfc382e_base
+
+{-# NOINLINE heif_encoder_parameter_get_valid_integer_range #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_range :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_parameter_get_valid_integer_range =
+  BG.unsafePerformIO hs_bindgen_6a3070253dfc382e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_values@
+foreign import ccall unsafe "hs_bindgen_067b5b207b483c5d" hs_bindgen_067b5b207b483c5d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_values@
+hs_bindgen_067b5b207b483c5d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error))
+hs_bindgen_067b5b207b483c5d =
+  BG.fromFFIType hs_bindgen_067b5b207b483c5d_base
+
+{-# NOINLINE heif_encoder_parameter_get_valid_integer_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 174:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_values :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error)
+heif_encoder_parameter_get_valid_integer_values =
+  BG.unsafePerformIO hs_bindgen_067b5b207b483c5d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_string_values@
+foreign import ccall unsafe "hs_bindgen_4402c7b710a2e293" hs_bindgen_4402c7b710a2e293_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_string_values@
+hs_bindgen_4402c7b710a2e293 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error))
+hs_bindgen_4402c7b710a2e293 =
+  BG.fromFFIType hs_bindgen_4402c7b710a2e293_base
+
+{-# NOINLINE heif_encoder_parameter_get_valid_string_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_string_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 181:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_string_values :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error)
+heif_encoder_parameter_get_valid_string_values =
+  BG.unsafePerformIO hs_bindgen_4402c7b710a2e293
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_e8b5b676e57560d7" hs_bindgen_e8b5b676e57560d7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_integer@
+hs_bindgen_e8b5b676e57560d7 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_e8b5b676e57560d7 =
+  BG.fromFFIType hs_bindgen_e8b5b676e57560d7_base
+
+{-# NOINLINE heif_encoder_set_parameter_integer #-}
+{-| __C declaration:__ @heif_encoder_set_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 186:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_integer :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_set_parameter_integer =
+  BG.unsafePerformIO hs_bindgen_e8b5b676e57560d7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_c44ab08992218d13" hs_bindgen_c44ab08992218d13_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_integer@
+hs_bindgen_c44ab08992218d13 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_c44ab08992218d13 =
+  BG.fromFFIType hs_bindgen_c44ab08992218d13_base
+
+{-# NOINLINE heif_encoder_get_parameter_integer #-}
+{-| __C declaration:__ @heif_encoder_get_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 191:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_integer :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter_integer =
+  BG.unsafePerformIO hs_bindgen_c44ab08992218d13
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_range@
+foreign import ccall unsafe "hs_bindgen_9598d3b74fd783cb" hs_bindgen_9598d3b74fd783cb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_range@
+hs_bindgen_9598d3b74fd783cb :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_9598d3b74fd783cb =
+  BG.fromFFIType hs_bindgen_9598d3b74fd783cb_base
+
+{-# NOINLINE heif_encoder_parameter_integer_valid_range #-}
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_range :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_parameter_integer_valid_range =
+  BG.unsafePerformIO hs_bindgen_9598d3b74fd783cb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_7db9099ac6d6f5b1" hs_bindgen_7db9099ac6d6f5b1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_boolean@
+hs_bindgen_7db9099ac6d6f5b1 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_7db9099ac6d6f5b1 =
+  BG.fromFFIType hs_bindgen_7db9099ac6d6f5b1_base
+
+{-# NOINLINE heif_encoder_set_parameter_boolean #-}
+{-| __C declaration:__ @heif_encoder_set_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 203:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_boolean :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_set_parameter_boolean =
+  BG.unsafePerformIO hs_bindgen_7db9099ac6d6f5b1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_9f1955202d334a10" hs_bindgen_9f1955202d334a10_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_boolean@
+hs_bindgen_9f1955202d334a10 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_9f1955202d334a10 =
+  BG.fromFFIType hs_bindgen_9f1955202d334a10_base
+
+{-# NOINLINE heif_encoder_get_parameter_boolean #-}
+{-| __C declaration:__ @heif_encoder_get_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 208:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_boolean :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter_boolean =
+  BG.unsafePerformIO hs_bindgen_9f1955202d334a10
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_string@
+foreign import ccall unsafe "hs_bindgen_b2607e571c92a618" hs_bindgen_b2607e571c92a618_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_string@
+hs_bindgen_b2607e571c92a618 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_b2607e571c92a618 =
+  BG.fromFFIType hs_bindgen_b2607e571c92a618_base
+
+{-# NOINLINE heif_encoder_set_parameter_string #-}
+{-| __C declaration:__ @heif_encoder_set_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 213:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_string :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_encoder_set_parameter_string =
+  BG.unsafePerformIO hs_bindgen_b2607e571c92a618
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_string@
+foreign import ccall unsafe "hs_bindgen_a95cafa3230d5da7" hs_bindgen_a95cafa3230d5da7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_string@
+hs_bindgen_a95cafa3230d5da7 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_a95cafa3230d5da7 =
+  BG.fromFFIType hs_bindgen_a95cafa3230d5da7_base
+
+{-# NOINLINE heif_encoder_get_parameter_string #-}
+{-| __C declaration:__ @heif_encoder_get_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_string :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter_string =
+  BG.unsafePerformIO hs_bindgen_a95cafa3230d5da7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_string_valid_values@
+foreign import ccall unsafe "hs_bindgen_ba4465c08b4cf0a2" hs_bindgen_ba4465c08b4cf0a2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_string_valid_values@
+hs_bindgen_ba4465c08b4cf0a2 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error))
+hs_bindgen_ba4465c08b4cf0a2 =
+  BG.fromFFIType hs_bindgen_ba4465c08b4cf0a2_base
+
+{-# NOINLINE heif_encoder_parameter_string_valid_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_string_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 224:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_string_valid_values :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error)
+heif_encoder_parameter_string_valid_values =
+  BG.unsafePerformIO hs_bindgen_ba4465c08b4cf0a2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_values@
+foreign import ccall unsafe "hs_bindgen_623e45d55c671d82" hs_bindgen_623e45d55c671d82_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_values@
+hs_bindgen_623e45d55c671d82 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error))
+hs_bindgen_623e45d55c671d82 =
+  BG.fromFFIType hs_bindgen_623e45d55c671d82_base
+
+{-# NOINLINE heif_encoder_parameter_integer_valid_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 229:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_values :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error)
+heif_encoder_parameter_integer_valid_values =
+  BG.unsafePerformIO hs_bindgen_623e45d55c671d82
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter@
+foreign import ccall unsafe "hs_bindgen_bd86a80de889a4f4" hs_bindgen_bd86a80de889a4f4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter@
+hs_bindgen_bd86a80de889a4f4 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_bd86a80de889a4f4 =
+  BG.fromFFIType hs_bindgen_bd86a80de889a4f4_base
+
+{-# NOINLINE heif_encoder_set_parameter #-}
+{-| __C declaration:__ @heif_encoder_set_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 246:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_encoder_set_parameter =
+  BG.unsafePerformIO hs_bindgen_bd86a80de889a4f4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter@
+foreign import ccall unsafe "hs_bindgen_72101d51afa9609b" hs_bindgen_72101d51afa9609b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter@
+hs_bindgen_72101d51afa9609b :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_72101d51afa9609b =
+  BG.fromFFIType hs_bindgen_72101d51afa9609b_base
+
+{-# NOINLINE heif_encoder_get_parameter #-}
+{-| __C declaration:__ @heif_encoder_get_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 253:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter =
+  BG.unsafePerformIO hs_bindgen_72101d51afa9609b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_has_default@
+foreign import ccall unsafe "hs_bindgen_26a34da2ac618ec0" hs_bindgen_26a34da2ac618ec0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_has_default@
+hs_bindgen_26a34da2ac618ec0 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> IO BG.CInt))
+hs_bindgen_26a34da2ac618ec0 =
+  BG.fromFFIType hs_bindgen_26a34da2ac618ec0_base
+
+{-# NOINLINE heif_encoder_has_default #-}
+{-| __C declaration:__ @heif_encoder_has_default@
+
+    __defined at:__ @libheif\/heif_encoding.h 259:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_has_default :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> IO BG.CInt)
+heif_encoder_has_default =
+  BG.unsafePerformIO hs_bindgen_26a34da2ac618ec0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_orientation_concat@
+foreign import ccall unsafe "hs_bindgen_c0dd2a0c657131aa" hs_bindgen_c0dd2a0c657131aa_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_orientation_concat@
+hs_bindgen_c0dd2a0c657131aa :: IO (BG.FunPtr (Heif_orientation -> Heif_orientation -> IO Heif_orientation))
+hs_bindgen_c0dd2a0c657131aa =
+  BG.fromFFIType hs_bindgen_c0dd2a0c657131aa_base
+
+{-# NOINLINE heif_orientation_concat #-}
+{-| __C declaration:__ @heif_orientation_concat@
+
+    __defined at:__ @libheif\/heif_encoding.h 278:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_orientation_concat :: BG.FunPtr (Heif_orientation -> Heif_orientation -> IO Heif_orientation)
+heif_orientation_concat =
+  BG.unsafePerformIO hs_bindgen_c0dd2a0c657131aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_28dbaae103570ff4" hs_bindgen_28dbaae103570ff4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_alloc@
+hs_bindgen_28dbaae103570ff4 :: IO (BG.FunPtr (IO (BG.Ptr Heif_encoding_options)))
+hs_bindgen_28dbaae103570ff4 =
+  BG.fromFFIType hs_bindgen_28dbaae103570ff4_base
+
+{-# NOINLINE heif_encoding_options_alloc #-}
+{-| __C declaration:__ @heif_encoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_encoding.h 335:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_alloc :: BG.FunPtr (IO (BG.Ptr Heif_encoding_options))
+heif_encoding_options_alloc =
+  BG.unsafePerformIO hs_bindgen_28dbaae103570ff4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_e7b5455adebcef43" hs_bindgen_e7b5455adebcef43_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_copy@
+hs_bindgen_e7b5455adebcef43 :: IO (BG.FunPtr (BG.Ptr Heif_encoding_options -> PtrConst.PtrConst Heif_encoding_options -> IO ()))
+hs_bindgen_e7b5455adebcef43 =
+  BG.fromFFIType hs_bindgen_e7b5455adebcef43_base
+
+{-# NOINLINE heif_encoding_options_copy #-}
+{-| __C declaration:__ @heif_encoding_options_copy@
+
+    __defined at:__ @libheif\/heif_encoding.h 338:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_copy :: BG.FunPtr (BG.Ptr Heif_encoding_options -> PtrConst.PtrConst Heif_encoding_options -> IO ())
+heif_encoding_options_copy =
+  BG.unsafePerformIO hs_bindgen_e7b5455adebcef43
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_free@
+foreign import ccall unsafe "hs_bindgen_787984e1e413ead9" hs_bindgen_787984e1e413ead9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_free@
+hs_bindgen_787984e1e413ead9 :: IO (BG.FunPtr (BG.Ptr Heif_encoding_options -> IO ()))
+hs_bindgen_787984e1e413ead9 =
+  BG.fromFFIType hs_bindgen_787984e1e413ead9_base
+
+{-# NOINLINE heif_encoding_options_free #-}
+{-| __C declaration:__ @heif_encoding_options_free@
+
+    __defined at:__ @libheif\/heif_encoding.h 341:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_free :: BG.FunPtr (BG.Ptr Heif_encoding_options -> IO ())
+heif_encoding_options_free =
+  BG.unsafePerformIO hs_bindgen_787984e1e413ead9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_image@
+foreign import ccall unsafe "hs_bindgen_610d77f41f92fba0" hs_bindgen_610d77f41f92fba0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_image@
+hs_bindgen_610d77f41f92fba0 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_610d77f41f92fba0 =
+  BG.fromFFIType hs_bindgen_610d77f41f92fba0_base
+
+{-# NOINLINE heif_context_encode_image #-}
+{-| __C declaration:__ @heif_context_encode_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 350:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_image :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_encode_image =
+  BG.unsafePerformIO hs_bindgen_610d77f41f92fba0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_overlay_image@
+foreign import ccall unsafe "hs_bindgen_b136dae560c28087" hs_bindgen_b136dae560c28087_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_overlay_image@
+hs_bindgen_b136dae560c28087 :: IO (BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word16 -> PtrConst.PtrConst Heif_item_id -> BG.Ptr HsBindgen.Runtime.LibC.Int32 -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16)) -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_b136dae560c28087 =
+  BG.fromFFIType hs_bindgen_b136dae560c28087_base
+
+{-# NOINLINE heif_context_add_overlay_image #-}
+{-| __C declaration:__ @heif_context_add_overlay_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 359:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_overlay_image :: BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word16 -> PtrConst.PtrConst Heif_item_id -> BG.Ptr HsBindgen.Runtime.LibC.Int32 -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16)) -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_add_overlay_image =
+  BG.unsafePerformIO hs_bindgen_b136dae560c28087
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_primary_image@
+foreign import ccall unsafe "hs_bindgen_82f06b9fbe305204" hs_bindgen_82f06b9fbe305204_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_primary_image@
+hs_bindgen_82f06b9fbe305204 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> IO Heif_error))
+hs_bindgen_82f06b9fbe305204 =
+  BG.fromFFIType hs_bindgen_82f06b9fbe305204_base
+
+{-# NOINLINE heif_context_set_primary_image #-}
+{-| __C declaration:__ @heif_context_set_primary_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 369:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_primary_image :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> IO Heif_error)
+heif_context_set_primary_image =
+  BG.unsafePerformIO hs_bindgen_82f06b9fbe305204
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_major_brand@
+foreign import ccall unsafe "hs_bindgen_4f09902dfe4716a2" hs_bindgen_4f09902dfe4716a2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_major_brand@
+hs_bindgen_4f09902dfe4716a2 :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ()))
+hs_bindgen_4f09902dfe4716a2 =
+  BG.fromFFIType hs_bindgen_4f09902dfe4716a2_base
+
+{-# NOINLINE heif_context_set_major_brand #-}
+{-| __C declaration:__ @heif_context_set_major_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 376:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_major_brand :: BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ())
+heif_context_set_major_brand =
+  BG.unsafePerformIO hs_bindgen_4f09902dfe4716a2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_c7a3ced56fa71bcc" hs_bindgen_c7a3ced56fa71bcc_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_compatible_brand@
+hs_bindgen_c7a3ced56fa71bcc :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ()))
+hs_bindgen_c7a3ced56fa71bcc =
+  BG.fromFFIType hs_bindgen_c7a3ced56fa71bcc_base
+
+{-# NOINLINE heif_context_add_compatible_brand #-}
+{-| __C declaration:__ @heif_context_add_compatible_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 381:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_compatible_brand :: BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ())
+heif_context_add_compatible_brand =
+  BG.unsafePerformIO hs_bindgen_c7a3ced56fa71bcc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_unif@
+foreign import ccall unsafe "hs_bindgen_540033bf7a81642b" hs_bindgen_540033bf7a81642b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_unif@
+hs_bindgen_540033bf7a81642b :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_540033bf7a81642b =
+  BG.fromFFIType hs_bindgen_540033bf7a81642b_base
+
+{-# NOINLINE heif_context_set_unif #-}
+{-| __C declaration:__ @heif_context_set_unif@
+
+    __defined at:__ @libheif\/heif_encoding.h 395:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_unif :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_unif =
+  BG.unsafePerformIO hs_bindgen_540033bf7a81642b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_2e1af2c079c4bdcb" hs_bindgen_2e1af2c079c4bdcb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossy_compression@
+hs_bindgen_2e1af2c079c4bdcb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_2e1af2c079c4bdcb =
+  BG.fromFFIType hs_bindgen_2e1af2c079c4bdcb_base
+
+{-# NOINLINE heif_encoder_descriptor_supportes_lossy_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossy_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supportes_lossy_compression =
+  BG.unsafePerformIO hs_bindgen_2e1af2c079c4bdcb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_0872f4049dc6adda" hs_bindgen_0872f4049dc6adda_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossless_compression@
+hs_bindgen_0872f4049dc6adda :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_0872f4049dc6adda =
+  BG.fromFFIType hs_bindgen_0872f4049dc6adda_base
+
+{-# NOINLINE heif_encoder_descriptor_supportes_lossless_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 405:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossless_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supportes_lossless_compression =
+  BG.unsafePerformIO hs_bindgen_0872f4049dc6adda
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_2fc974173395e821" hs_bindgen_2fc974173395e821_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_descriptors@
+hs_bindgen_2fc974173395e821 :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt))
+hs_bindgen_2fc974173395e821 =
+  BG.fromFFIType hs_bindgen_2fc974173395e821_base
+
+{-# NOINLINE heif_context_get_encoder_descriptors #-}
+{-| __C declaration:__ @heif_context_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 415:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_descriptors :: BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt)
+heif_context_get_encoder_descriptors =
+  BG.unsafePerformIO hs_bindgen_2fc974173395e821
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_5e62b65c99d23407" hs_bindgen_5e62b65c99d23407_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_max_decoding_threads@
+hs_bindgen_5e62b65c99d23407 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_5e62b65c99d23407 =
+  BG.fromFFIType hs_bindgen_5e62b65c99d23407_base
+
+{-# NOINLINE heif_context_set_max_decoding_threads #-}
+{-| __C declaration:__ @heif_context_set_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 40:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_max_decoding_threads :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_max_decoding_threads =
+  BG.unsafePerformIO hs_bindgen_5e62b65c99d23407
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_3b4e8316def8a237" hs_bindgen_3b4e8316def8a237_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_max_decoding_threads@
+hs_bindgen_3b4e8316def8a237 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_context -> IO BG.CInt))
+hs_bindgen_3b4e8316def8a237 =
+  BG.fromFFIType hs_bindgen_3b4e8316def8a237_base
+
+{-# NOINLINE heif_context_get_max_decoding_threads #-}
+{-| __C declaration:__ @heif_context_get_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 47:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_max_decoding_threads :: BG.FunPtr (PtrConst.PtrConst Heif_context -> IO BG.CInt)
+heif_context_get_max_decoding_threads =
+  BG.unsafePerformIO hs_bindgen_3b4e8316def8a237
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_decoder_for_format@
+foreign import ccall unsafe "hs_bindgen_3daa6cca356665b6" hs_bindgen_3daa6cca356665b6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_decoder_for_format@
+hs_bindgen_3daa6cca356665b6 :: IO (BG.FunPtr (Heif_compression_format -> IO BG.CInt))
+hs_bindgen_3daa6cca356665b6 =
+  BG.fromFFIType hs_bindgen_3daa6cca356665b6_base
+
+{-# NOINLINE heif_have_decoder_for_format #-}
+{-| __C declaration:__ @heif_have_decoder_for_format@
+
+    __defined at:__ @libheif\/heif_decoding.h 53:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_decoder_for_format :: BG.FunPtr (Heif_compression_format -> IO BG.CInt)
+heif_have_decoder_for_format =
+  BG.unsafePerformIO hs_bindgen_3daa6cca356665b6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_9a50b249bd540166" hs_bindgen_9a50b249bd540166_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_alloc@
+hs_bindgen_9a50b249bd540166 :: IO (BG.FunPtr (IO (BG.Ptr Heif_decoding_options)))
+hs_bindgen_9a50b249bd540166 =
+  BG.fromFFIType hs_bindgen_9a50b249bd540166_base
+
+{-# NOINLINE heif_decoding_options_alloc #-}
+{-| __C declaration:__ @heif_decoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_decoding.h 165:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_alloc :: BG.FunPtr (IO (BG.Ptr Heif_decoding_options))
+heif_decoding_options_alloc =
+  BG.unsafePerformIO hs_bindgen_9a50b249bd540166
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_32da465efe73fcdb" hs_bindgen_32da465efe73fcdb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_copy@
+hs_bindgen_32da465efe73fcdb :: IO (BG.FunPtr (BG.Ptr Heif_decoding_options -> PtrConst.PtrConst Heif_decoding_options -> IO ()))
+hs_bindgen_32da465efe73fcdb =
+  BG.fromFFIType hs_bindgen_32da465efe73fcdb_base
+
+{-# NOINLINE heif_decoding_options_copy #-}
+{-| __C declaration:__ @heif_decoding_options_copy@
+
+    __defined at:__ @libheif\/heif_decoding.h 168:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_copy :: BG.FunPtr (BG.Ptr Heif_decoding_options -> PtrConst.PtrConst Heif_decoding_options -> IO ())
+heif_decoding_options_copy =
+  BG.unsafePerformIO hs_bindgen_32da465efe73fcdb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_free@
+foreign import ccall unsafe "hs_bindgen_52712d76ab537988" hs_bindgen_52712d76ab537988_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_free@
+hs_bindgen_52712d76ab537988 :: IO (BG.FunPtr (BG.Ptr Heif_decoding_options -> IO ()))
+hs_bindgen_52712d76ab537988 =
+  BG.fromFFIType hs_bindgen_52712d76ab537988_base
+
+{-# NOINLINE heif_decoding_options_free #-}
+{-| __C declaration:__ @heif_decoding_options_free@
+
+    __defined at:__ @libheif\/heif_decoding.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_free :: BG.FunPtr (BG.Ptr Heif_decoding_options -> IO ())
+heif_decoding_options_free =
+  BG.unsafePerformIO hs_bindgen_52712d76ab537988
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_decoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_0f017f38829ac8dd" hs_bindgen_0f017f38829ac8dd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_decoder_descriptors@
+hs_bindgen_0f017f38829ac8dd :: IO (BG.FunPtr (Heif_compression_format -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor) -> BG.CInt -> IO BG.CInt))
+hs_bindgen_0f017f38829ac8dd =
+  BG.fromFFIType hs_bindgen_0f017f38829ac8dd_base
+
+{-# NOINLINE heif_get_decoder_descriptors #-}
+{-| __C declaration:__ @heif_get_decoder_descriptors@
+
+    __defined at:__ @libheif\/heif_decoding.h 183:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_decoder_descriptors :: BG.FunPtr (Heif_compression_format -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor) -> BG.CInt -> IO BG.CInt)
+heif_get_decoder_descriptors =
+  BG.unsafePerformIO hs_bindgen_0f017f38829ac8dd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_3db1040f1533c36e" hs_bindgen_3db1040f1533c36e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_name@
+hs_bindgen_3db1040f1533c36e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_3db1040f1533c36e =
+  BG.fromFFIType hs_bindgen_3db1040f1533c36e_base
+
+{-# NOINLINE heif_decoder_descriptor_get_name #-}
+{-| __C declaration:__ @heif_decoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 189:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_decoder_descriptor_get_name =
+  BG.unsafePerformIO hs_bindgen_3db1040f1533c36e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_7b37485a305012c6" hs_bindgen_7b37485a305012c6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_id_name@
+hs_bindgen_7b37485a305012c6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_7b37485a305012c6 =
+  BG.fromFFIType hs_bindgen_7b37485a305012c6_base
+
+{-# NOINLINE heif_decoder_descriptor_get_id_name #-}
+{-| __C declaration:__ @heif_decoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 195:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_id_name :: BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_decoder_descriptor_get_id_name =
+  BG.unsafePerformIO hs_bindgen_7b37485a305012c6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decode_image@
+foreign import ccall unsafe "hs_bindgen_979d124ef42ec5cf" hs_bindgen_979d124ef42ec5cf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decode_image@
+hs_bindgen_979d124ef42ec5cf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> IO Heif_error))
+hs_bindgen_979d124ef42ec5cf =
+  BG.fromFFIType hs_bindgen_979d124ef42ec5cf_base
+
+{-# NOINLINE heif_decode_image #-}
+{-| __C declaration:__ @heif_decode_image@
+
+    __defined at:__ @libheif\/heif_decoding.h 209:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decode_image :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> IO Heif_error)
+heif_decode_image =
+  BG.unsafePerformIO hs_bindgen_979d124ef42ec5cf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release@
+foreign import ccall unsafe "hs_bindgen_f5cb46c43b851a0a" hs_bindgen_f5cb46c43b851a0a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release@
+hs_bindgen_f5cb46c43b851a0a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO ()))
+hs_bindgen_f5cb46c43b851a0a =
+  BG.fromFFIType hs_bindgen_f5cb46c43b851a0a_base
+
+{-# NOINLINE heif_image_handle_release #-}
+{-| __C declaration:__ @heif_image_handle_release@
+
+    __defined at:__ @libheif\/heif_image_handle.h 47:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO ())
+heif_image_handle_release =
+  BG.unsafePerformIO hs_bindgen_f5cb46c43b851a0a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_primary_image@
+foreign import ccall unsafe "hs_bindgen_9d6025e4141c8268" hs_bindgen_9d6025e4141c8268_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_primary_image@
+hs_bindgen_9d6025e4141c8268 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_9d6025e4141c8268 =
+  BG.fromFFIType hs_bindgen_9d6025e4141c8268_base
+
+{-# NOINLINE heif_image_handle_is_primary_image #-}
+{-| __C declaration:__ @heif_image_handle_is_primary_image@
+
+    __defined at:__ @libheif\/heif_image_handle.h 51:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_primary_image :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_is_primary_image =
+  BG.unsafePerformIO hs_bindgen_9d6025e4141c8268
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_item_id@
+foreign import ccall unsafe "hs_bindgen_4f10cdca13968c49" hs_bindgen_4f10cdca13968c49_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_item_id@
+hs_bindgen_4f10cdca13968c49 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_item_id))
+hs_bindgen_4f10cdca13968c49 =
+  BG.fromFFIType hs_bindgen_4f10cdca13968c49_base
+
+{-# NOINLINE heif_image_handle_get_item_id #-}
+{-| __C declaration:__ @heif_image_handle_get_item_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_item_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_item_id)
+heif_image_handle_get_item_id =
+  BG.unsafePerformIO hs_bindgen_4f10cdca13968c49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_width@
+foreign import ccall unsafe "hs_bindgen_fe94688c878539a4" hs_bindgen_fe94688c878539a4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_width@
+hs_bindgen_fe94688c878539a4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_fe94688c878539a4 =
+  BG.fromFFIType hs_bindgen_fe94688c878539a4_base
+
+{-# NOINLINE heif_image_handle_get_width #-}
+{-| __C declaration:__ @heif_image_handle_get_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 61:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_width :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_width =
+  BG.unsafePerformIO hs_bindgen_fe94688c878539a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_height@
+foreign import ccall unsafe "hs_bindgen_3b679516a521f7e3" hs_bindgen_3b679516a521f7e3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_height@
+hs_bindgen_3b679516a521f7e3 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_3b679516a521f7e3 =
+  BG.fromFFIType hs_bindgen_3b679516a521f7e3_base
+
+{-# NOINLINE heif_image_handle_get_height #-}
+{-| __C declaration:__ @heif_image_handle_get_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 68:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_height :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_height =
+  BG.unsafePerformIO hs_bindgen_3b679516a521f7e3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_alpha_channel@
+foreign import ccall unsafe "hs_bindgen_4a7731dc45dcb737" hs_bindgen_4a7731dc45dcb737_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_alpha_channel@
+hs_bindgen_4a7731dc45dcb737 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_4a7731dc45dcb737 =
+  BG.fromFFIType hs_bindgen_4a7731dc45dcb737_base
+
+{-# NOINLINE heif_image_handle_has_alpha_channel #-}
+{-| __C declaration:__ @heif_image_handle_has_alpha_channel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 71:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_alpha_channel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_alpha_channel =
+  BG.unsafePerformIO hs_bindgen_4a7731dc45dcb737
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_59754eef2ee882b9" hs_bindgen_59754eef2ee882b9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_premultiplied_alpha@
+hs_bindgen_59754eef2ee882b9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_59754eef2ee882b9 =
+  BG.fromFFIType hs_bindgen_59754eef2ee882b9_base
+
+{-# NOINLINE heif_image_handle_is_premultiplied_alpha #-}
+{-| __C declaration:__ @heif_image_handle_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image_handle.h 74:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_premultiplied_alpha :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_is_premultiplied_alpha =
+  BG.unsafePerformIO hs_bindgen_59754eef2ee882b9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_luma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_f9d7480524d63f18" hs_bindgen_f9d7480524d63f18_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_luma_bits_per_pixel@
+hs_bindgen_f9d7480524d63f18 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_f9d7480524d63f18 =
+  BG.fromFFIType hs_bindgen_f9d7480524d63f18_base
+
+{-# NOINLINE heif_image_handle_get_luma_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_handle_get_luma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 79:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_luma_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_luma_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_f9d7480524d63f18
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_chroma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_bb5d1684ae3d8627" hs_bindgen_bb5d1684ae3d8627_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_chroma_bits_per_pixel@
+hs_bindgen_bb5d1684ae3d8627 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_bb5d1684ae3d8627 =
+  BG.fromFFIType hs_bindgen_bb5d1684ae3d8627_base
+
+{-# NOINLINE heif_image_handle_get_chroma_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_handle_get_chroma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 84:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_chroma_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_chroma_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_bb5d1684ae3d8627
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_preferred_decoding_colorspace@
+foreign import ccall unsafe "hs_bindgen_4494944c3b2862bd" hs_bindgen_4494944c3b2862bd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_preferred_decoding_colorspace@
+hs_bindgen_4494944c3b2862bd :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_colorspace -> BG.Ptr Heif_chroma -> IO Heif_error))
+hs_bindgen_4494944c3b2862bd =
+  BG.fromFFIType hs_bindgen_4494944c3b2862bd_base
+
+{-# NOINLINE heif_image_handle_get_preferred_decoding_colorspace #-}
+{-| __C declaration:__ @heif_image_handle_get_preferred_decoding_colorspace@
+
+    __defined at:__ @libheif\/heif_image_handle.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_preferred_decoding_colorspace :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_colorspace -> BG.Ptr Heif_chroma -> IO Heif_error)
+heif_image_handle_get_preferred_decoding_colorspace =
+  BG.unsafePerformIO hs_bindgen_4494944c3b2862bd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_width@
+foreign import ccall unsafe "hs_bindgen_d49b3c605c71337e" hs_bindgen_d49b3c605c71337e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_width@
+hs_bindgen_d49b3c605c71337e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_d49b3c605c71337e =
+  BG.fromFFIType hs_bindgen_d49b3c605c71337e_base
+
+{-# NOINLINE heif_image_handle_get_ispe_width #-}
+{-| __C declaration:__ @heif_image_handle_get_ispe_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 110:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_width :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_ispe_width =
+  BG.unsafePerformIO hs_bindgen_d49b3c605c71337e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_height@
+foreign import ccall unsafe "hs_bindgen_2162a39f4c12630b" hs_bindgen_2162a39f4c12630b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_height@
+hs_bindgen_2162a39f4c12630b :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_2162a39f4c12630b =
+  BG.fromFFIType hs_bindgen_2162a39f4c12630b_base
+
+{-# NOINLINE heif_image_handle_get_ispe_height #-}
+{-| __C declaration:__ @heif_image_handle_get_ispe_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_height :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_ispe_height =
+  BG.unsafePerformIO hs_bindgen_2162a39f4c12630b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_723ac84409ddbfbf" hs_bindgen_723ac84409ddbfbf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_pixel_aspect_ratio@
+hs_bindgen_723ac84409ddbfbf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt))
+hs_bindgen_723ac84409ddbfbf =
+  BG.fromFFIType hs_bindgen_723ac84409ddbfbf_base
+
+{-# NOINLINE heif_image_handle_get_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_handle_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image_handle.h 117:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_pixel_aspect_ratio :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt)
+heif_image_handle_get_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_723ac84409ddbfbf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_context@
+foreign import ccall unsafe "hs_bindgen_a4854bf4bce1329e" hs_bindgen_a4854bf4bce1329e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_context@
+hs_bindgen_a4854bf4bce1329e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (BG.Ptr Heif_context)))
+hs_bindgen_a4854bf4bce1329e =
+  BG.fromFFIType hs_bindgen_a4854bf4bce1329e_base
+
+{-# NOINLINE heif_image_handle_get_context #-}
+{-| __C declaration:__ @heif_image_handle_get_context@
+
+    __defined at:__ @libheif\/heif_image_handle.h 129:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_context :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (BG.Ptr Heif_context))
+heif_image_handle_get_context =
+  BG.unsafePerformIO hs_bindgen_a4854bf4bce1329e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_ec464a481e6bf7eb" hs_bindgen_ec464a481e6bf7eb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_content_id@
+hs_bindgen_ec464a481e6bf7eb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_ec464a481e6bf7eb =
+  BG.fromFFIType hs_bindgen_ec464a481e6bf7eb_base
+
+{-# NOINLINE heif_image_handle_get_gimi_content_id #-}
+{-| __C declaration:__ @heif_image_handle_get_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 132:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_content_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_gimi_content_id =
+  BG.unsafePerformIO hs_bindgen_ec464a481e6bf7eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_45b87b154ffab31e" hs_bindgen_45b87b154ffab31e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_content_id@
+hs_bindgen_45b87b154ffab31e :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO ()))
+hs_bindgen_45b87b154ffab31e =
+  BG.fromFFIType hs_bindgen_45b87b154ffab31e_base
+
+{-# NOINLINE heif_image_handle_set_gimi_content_id #-}
+{-| __C declaration:__ @heif_image_handle_set_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 135:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_content_id :: BG.FunPtr (BG.Ptr Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO ())
+heif_image_handle_set_gimi_content_id =
+  BG.unsafePerformIO hs_bindgen_45b87b154ffab31e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_cmpd_components@
+foreign import ccall unsafe "hs_bindgen_3f1f496bd459f7d1" hs_bindgen_3f1f496bd459f7d1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_cmpd_components@
+hs_bindgen_3f1f496bd459f7d1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_3f1f496bd459f7d1 =
+  BG.fromFFIType hs_bindgen_3f1f496bd459f7d1_base
+
+{-# NOINLINE heif_image_handle_get_number_of_cmpd_components #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_cmpd_components@
+
+    __defined at:__ @libheif\/heif_image_handle.h 142:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_cmpd_components :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_handle_get_number_of_cmpd_components =
+  BG.unsafePerformIO hs_bindgen_3f1f496bd459f7d1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type@
+foreign import ccall unsafe "hs_bindgen_30689ff6fff118a6" hs_bindgen_30689ff6fff118a6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type@
+hs_bindgen_30689ff6fff118a6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16))
+hs_bindgen_30689ff6fff118a6 =
+  BG.fromFFIType hs_bindgen_30689ff6fff118a6_base
+
+{-# NOINLINE heif_image_handle_get_cmpd_component_type #-}
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_image_handle.h 147:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16)
+heif_image_handle_get_cmpd_component_type =
+  BG.unsafePerformIO hs_bindgen_30689ff6fff118a6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type_uri@
+foreign import ccall unsafe "hs_bindgen_e8528f21f6d1c6e1" hs_bindgen_e8528f21f6d1c6e1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type_uri@
+hs_bindgen_e8528f21f6d1c6e1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_e8528f21f6d1c6e1 =
+  BG.fromFFIType hs_bindgen_e8528f21f6d1c6e1_base
+
+{-# NOINLINE heif_image_handle_get_cmpd_component_type_uri #-}
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type_uri@
+
+    __defined at:__ @libheif\/heif_image_handle.h 153:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type_uri :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_cmpd_component_type_uri =
+  BG.unsafePerformIO hs_bindgen_e8528f21f6d1c6e1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_gimi_component_content_ids@
+foreign import ccall unsafe "hs_bindgen_cd11e257d97813a3" hs_bindgen_cd11e257d97813a3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_gimi_component_content_ids@
+hs_bindgen_cd11e257d97813a3 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_cd11e257d97813a3 =
+  BG.fromFFIType hs_bindgen_cd11e257d97813a3_base
+
+{-# NOINLINE heif_image_handle_has_gimi_component_content_ids #-}
+{-| __C declaration:__ @heif_image_handle_has_gimi_component_content_ids@
+
+    __defined at:__ @libheif\/heif_image_handle.h 160:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_gimi_component_content_ids :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_gimi_component_content_ids =
+  BG.unsafePerformIO hs_bindgen_cd11e257d97813a3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_82b03ca2c8baca6c" hs_bindgen_82b03ca2c8baca6c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_component_content_id@
+hs_bindgen_82b03ca2c8baca6c :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_82b03ca2c8baca6c =
+  BG.fromFFIType hs_bindgen_82b03ca2c8baca6c_base
+
+{-# NOINLINE heif_image_handle_get_gimi_component_content_id #-}
+{-| __C declaration:__ @heif_image_handle_get_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 166:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_component_content_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_gimi_component_content_id =
+  BG.unsafePerformIO hs_bindgen_82b03ca2c8baca6c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_8e6048a2e91cf20b" hs_bindgen_8e6048a2e91cf20b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_component_content_id@
+hs_bindgen_8e6048a2e91cf20b :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO ()))
+hs_bindgen_8e6048a2e91cf20b =
+  BG.fromFFIType hs_bindgen_8e6048a2e91cf20b_base
+
+{-# NOINLINE heif_image_handle_set_gimi_component_content_id #-}
+{-| __C declaration:__ @heif_image_handle_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_component_content_id :: BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO ())
+heif_image_handle_set_gimi_component_content_id =
+  BG.unsafePerformIO hs_bindgen_8e6048a2e91cf20b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_image_tiling@
+foreign import ccall unsafe "hs_bindgen_c72c6e6de065492e" hs_bindgen_c72c6e6de065492e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_image_tiling@
+hs_bindgen_c72c6e6de065492e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_image_tiling -> IO Heif_error))
+hs_bindgen_c72c6e6de065492e =
+  BG.fromFFIType hs_bindgen_c72c6e6de065492e_base
+
+{-# NOINLINE heif_image_handle_get_image_tiling #-}
+{-| __C declaration:__ @heif_image_handle_get_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 67:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_image_tiling :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_image_tiling -> IO Heif_error)
+heif_image_handle_get_image_tiling =
+  BG.unsafePerformIO hs_bindgen_c72c6e6de065492e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_grid_image_tile_id@
+foreign import ccall unsafe "hs_bindgen_dbdaf29e829a9876" hs_bindgen_dbdaf29e829a9876_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_grid_image_tile_id@
+hs_bindgen_dbdaf29e829a9876 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr Heif_item_id -> IO Heif_error))
+hs_bindgen_dbdaf29e829a9876 =
+  BG.fromFFIType hs_bindgen_dbdaf29e829a9876_base
+
+{-# NOINLINE heif_image_handle_get_grid_image_tile_id #-}
+{-| __C declaration:__ @heif_image_handle_get_grid_image_tile_id@
+
+    __defined at:__ @libheif\/heif_tiling.h 74:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_grid_image_tile_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr Heif_item_id -> IO Heif_error)
+heif_image_handle_get_grid_image_tile_id =
+  BG.unsafePerformIO hs_bindgen_dbdaf29e829a9876
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_decode_image_tile@
+foreign import ccall unsafe "hs_bindgen_699735c377474463" hs_bindgen_699735c377474463_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_decode_image_tile@
+hs_bindgen_699735c377474463 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error))
+hs_bindgen_699735c377474463 =
+  BG.fromFFIType hs_bindgen_699735c377474463_base
+
+{-# NOINLINE heif_image_handle_decode_image_tile #-}
+{-| __C declaration:__ @heif_image_handle_decode_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 86:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_decode_image_tile :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error)
+heif_image_handle_decode_image_tile =
+  BG.unsafePerformIO hs_bindgen_699735c377474463
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_grid@
+foreign import ccall unsafe "hs_bindgen_7caea6543ead81e2" hs_bindgen_7caea6543ead81e2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_grid@
+hs_bindgen_7caea6543ead81e2 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image) -> HsBindgen.Runtime.LibC.Word16 -> HsBindgen.Runtime.LibC.Word16 -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_7caea6543ead81e2 =
+  BG.fromFFIType hs_bindgen_7caea6543ead81e2_base
+
+{-# NOINLINE heif_context_encode_grid #-}
+{-| __C declaration:__ @heif_context_encode_grid@
+
+    __defined at:__ @libheif\/heif_tiling.h 109:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_grid :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image) -> HsBindgen.Runtime.LibC.Word16 -> HsBindgen.Runtime.LibC.Word16 -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_encode_grid =
+  BG.unsafePerformIO hs_bindgen_7caea6543ead81e2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_grid_image@
+foreign import ccall unsafe "hs_bindgen_2cce0ce4f2f029a8" hs_bindgen_2cce0ce4f2f029a8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_grid_image@
+hs_bindgen_2cce0ce4f2f029a8 :: IO (BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_2cce0ce4f2f029a8 =
+  BG.fromFFIType hs_bindgen_2cce0ce4f2f029a8_base
+
+{-# NOINLINE heif_context_add_grid_image #-}
+{-| __C declaration:__ @heif_context_add_grid_image@
+
+    __defined at:__ @libheif\/heif_tiling.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_grid_image :: BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_add_grid_image =
+  BG.unsafePerformIO hs_bindgen_2cce0ce4f2f029a8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_image_tile@
+foreign import ccall unsafe "hs_bindgen_65b0546b14ab11ca" hs_bindgen_65b0546b14ab11ca_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_image_tile@
+hs_bindgen_65b0546b14ab11ca :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> IO Heif_error))
+hs_bindgen_65b0546b14ab11ca =
+  BG.fromFFIType hs_bindgen_65b0546b14ab11ca_base
+
+{-# NOINLINE heif_context_add_image_tile #-}
+{-| __C declaration:__ @heif_context_add_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 127:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_image_tile :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> IO Heif_error)
+heif_context_add_image_tile =
+  BG.unsafePerformIO hs_bindgen_65b0546b14ab11ca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_number_of_used_components@
+foreign import ccall unsafe "hs_bindgen_cccb6b24e80c7598" hs_bindgen_cccb6b24e80c7598_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_number_of_used_components@
+hs_bindgen_cccb6b24e80c7598 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_cccb6b24e80c7598 =
+  BG.fromFFIType hs_bindgen_cccb6b24e80c7598_base
+
+{-# NOINLINE heif_image_get_number_of_used_components #-}
+{-| __C declaration:__ @heif_image_get_number_of_used_components@
+
+    __defined at:__ @libheif\/heif_components.h 96:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_number_of_used_components :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_number_of_used_components =
+  BG.unsafePerformIO hs_bindgen_cccb6b24e80c7598
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_b2a27aa5ab429ee9" hs_bindgen_b2a27aa5ab429ee9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_used_component_ids@
+hs_bindgen_b2a27aa5ab429ee9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_b2a27aa5ab429ee9 =
+  BG.fromFFIType hs_bindgen_b2a27aa5ab429ee9_base
+
+{-# NOINLINE heif_image_get_used_component_ids #-}
+{-| __C declaration:__ @heif_image_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 101:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_used_component_ids :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_get_used_component_ids =
+  BG.unsafePerformIO hs_bindgen_b2a27aa5ab429ee9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_channel@
+foreign import ccall unsafe "hs_bindgen_51621589bc6d7870" hs_bindgen_51621589bc6d7870_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_channel@
+hs_bindgen_51621589bc6d7870 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_channel))
+hs_bindgen_51621589bc6d7870 =
+  BG.fromFFIType hs_bindgen_51621589bc6d7870_base
+
+{-# NOINLINE heif_image_get_component_channel #-}
+{-| __C declaration:__ @heif_image_get_component_channel@
+
+    __defined at:__ @libheif\/heif_components.h 104:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_channel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_channel)
+heif_image_get_component_channel =
+  BG.unsafePerformIO hs_bindgen_51621589bc6d7870
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_width@
+foreign import ccall unsafe "hs_bindgen_844ddc17a3c931b4" hs_bindgen_844ddc17a3c931b4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_width@
+hs_bindgen_844ddc17a3c931b4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_844ddc17a3c931b4 =
+  BG.fromFFIType hs_bindgen_844ddc17a3c931b4_base
+
+{-# NOINLINE heif_image_get_component_width #-}
+{-| __C declaration:__ @heif_image_get_component_width@
+
+    __defined at:__ @libheif\/heif_components.h 107:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_width :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_width =
+  BG.unsafePerformIO hs_bindgen_844ddc17a3c931b4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_height@
+foreign import ccall unsafe "hs_bindgen_1fa307e24407a0f7" hs_bindgen_1fa307e24407a0f7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_height@
+hs_bindgen_1fa307e24407a0f7 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_1fa307e24407a0f7 =
+  BG.fromFFIType hs_bindgen_1fa307e24407a0f7_base
+
+{-# NOINLINE heif_image_get_component_height #-}
+{-| __C declaration:__ @heif_image_get_component_height@
+
+    __defined at:__ @libheif\/heif_components.h 110:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_height :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_height =
+  BG.unsafePerformIO hs_bindgen_1fa307e24407a0f7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_fa65f60ea3112425" hs_bindgen_fa65f60ea3112425_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_bits_per_pixel@
+hs_bindgen_fa65f60ea3112425 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt))
+hs_bindgen_fa65f60ea3112425 =
+  BG.fromFFIType hs_bindgen_fa65f60ea3112425_base
+
+{-# NOINLINE heif_image_get_component_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt)
+heif_image_get_component_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_fa65f60ea3112425
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_type@
+foreign import ccall unsafe "hs_bindgen_500397f4997a0fa4" hs_bindgen_500397f4997a0fa4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_type@
+hs_bindgen_500397f4997a0fa4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16))
+hs_bindgen_500397f4997a0fa4 =
+  BG.fromFFIType hs_bindgen_500397f4997a0fa4_base
+
+{-# NOINLINE heif_image_get_component_type #-}
+{-| __C declaration:__ @heif_image_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 116:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_type :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_type =
+  BG.unsafePerformIO hs_bindgen_500397f4997a0fa4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_b3718485664aa5c1" hs_bindgen_b3718485664aa5c1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_datatype@
+hs_bindgen_b3718485664aa5c1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype))
+hs_bindgen_b3718485664aa5c1 =
+  BG.fromFFIType hs_bindgen_b3718485664aa5c1_base
+
+{-# NOINLINE heif_image_get_component_datatype #-}
+{-| __C declaration:__ @heif_image_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 121:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_datatype :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype)
+heif_image_get_component_datatype =
+  BG.unsafePerformIO hs_bindgen_b3718485664aa5c1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_components@
+foreign import ccall unsafe "hs_bindgen_313b35060d1e5135" hs_bindgen_313b35060d1e5135_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_components@
+hs_bindgen_313b35060d1e5135 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_313b35060d1e5135 =
+  BG.fromFFIType hs_bindgen_313b35060d1e5135_base
+
+{-# NOINLINE heif_image_handle_get_number_of_components #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_components@
+
+    __defined at:__ @libheif\/heif_components.h 136:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_components :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_handle_get_number_of_components =
+  BG.unsafePerformIO hs_bindgen_313b35060d1e5135
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_3d6d506be66d3a5d" hs_bindgen_3d6d506be66d3a5d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_used_component_ids@
+hs_bindgen_3d6d506be66d3a5d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_3d6d506be66d3a5d =
+  BG.fromFFIType hs_bindgen_3d6d506be66d3a5d_base
+
+{-# NOINLINE heif_image_handle_get_used_component_ids #-}
+{-| __C declaration:__ @heif_image_handle_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 142:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_used_component_ids :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_handle_get_used_component_ids =
+  BG.unsafePerformIO hs_bindgen_3d6d506be66d3a5d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_type@
+foreign import ccall unsafe "hs_bindgen_2a9b81acde526f2f" hs_bindgen_2a9b81acde526f2f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_type@
+hs_bindgen_2a9b81acde526f2f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16))
+hs_bindgen_2a9b81acde526f2f =
+  BG.fromFFIType hs_bindgen_2a9b81acde526f2f_base
+
+{-# NOINLINE heif_image_handle_get_component_type #-}
+{-| __C declaration:__ @heif_image_handle_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 145:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16)
+heif_image_handle_get_component_type =
+  BG.unsafePerformIO hs_bindgen_2a9b81acde526f2f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_7114af07e418dc15" hs_bindgen_7114af07e418dc15_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_bits_per_pixel@
+hs_bindgen_7114af07e418dc15 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt))
+hs_bindgen_7114af07e418dc15 =
+  BG.fromFFIType hs_bindgen_7114af07e418dc15_base
+
+{-# NOINLINE heif_image_handle_get_component_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_handle_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt)
+heif_image_handle_get_component_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_7114af07e418dc15
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_37ac5fdd4a5313c6" hs_bindgen_37ac5fdd4a5313c6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_datatype@
+hs_bindgen_37ac5fdd4a5313c6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype))
+hs_bindgen_37ac5fdd4a5313c6 =
+  BG.fromFFIType hs_bindgen_37ac5fdd4a5313c6_base
+
+{-# NOINLINE heif_image_handle_get_component_datatype #-}
+{-| __C declaration:__ @heif_image_handle_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 151:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_datatype :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype)
+heif_image_handle_get_component_datatype =
+  BG.unsafePerformIO hs_bindgen_37ac5fdd4a5313c6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_component@
+foreign import ccall unsafe "hs_bindgen_1fdd576f0a532dd8" hs_bindgen_1fdd576f0a532dd8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_component@
+hs_bindgen_1fdd576f0a532dd8 :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> HsBindgen.Runtime.LibC.Word16 -> Heif_component_datatype -> BG.CInt -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO Heif_error))
+hs_bindgen_1fdd576f0a532dd8 =
+  BG.fromFFIType hs_bindgen_1fdd576f0a532dd8_base
+
+{-# NOINLINE heif_image_add_component #-}
+{-| __C declaration:__ @heif_image_add_component@
+
+    __defined at:__ @libheif\/heif_components.h 157:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_component :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> HsBindgen.Runtime.LibC.Word16 -> Heif_component_datatype -> BG.CInt -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO Heif_error)
+heif_image_add_component =
+  BG.unsafePerformIO hs_bindgen_1fdd576f0a532dd8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_readonly@
+foreign import ccall unsafe "hs_bindgen_b887cc6f13914d9f" hs_bindgen_b887cc6f13914d9f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_readonly@
+hs_bindgen_b887cc6f13914d9f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_b887cc6f13914d9f =
+  BG.fromFFIType hs_bindgen_b887cc6f13914d9f_base
+
+{-# NOINLINE heif_image_get_component_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 168:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8))
+heif_image_get_component_readonly =
+  BG.unsafePerformIO hs_bindgen_b887cc6f13914d9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component@
+foreign import ccall unsafe "hs_bindgen_d0fb2e8c6b555a5f" hs_bindgen_d0fb2e8c6b555a5f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component@
+hs_bindgen_d0fb2e8c6b555a5f :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_d0fb2e8c6b555a5f =
+  BG.fromFFIType hs_bindgen_d0fb2e8c6b555a5f_base
+
+{-# NOINLINE heif_image_get_component #-}
+{-| __C declaration:__ @heif_image_get_component@
+
+    __defined at:__ @libheif\/heif_components.h 171:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8))
+heif_image_get_component =
+  BG.unsafePerformIO hs_bindgen_d0fb2e8c6b555a5f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16_readonly@
+foreign import ccall unsafe "hs_bindgen_f2584f6738c6a3ea" hs_bindgen_f2584f6738c6a3ea_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16_readonly@
+hs_bindgen_f2584f6738c6a3ea :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)))
+hs_bindgen_f2584f6738c6a3ea =
+  BG.fromFFIType hs_bindgen_f2584f6738c6a3ea_base
+
+{-# NOINLINE heif_image_get_component_uint16_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_uint16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 180:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16))
+heif_image_get_component_uint16_readonly =
+  BG.unsafePerformIO hs_bindgen_f2584f6738c6a3ea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16@
+foreign import ccall unsafe "hs_bindgen_e7308ea5505ed9aa" hs_bindgen_e7308ea5505ed9aa_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16@
+hs_bindgen_e7308ea5505ed9aa :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)))
+hs_bindgen_e7308ea5505ed9aa =
+  BG.fromFFIType hs_bindgen_e7308ea5505ed9aa_base
+
+{-# NOINLINE heif_image_get_component_uint16 #-}
+{-| __C declaration:__ @heif_image_get_component_uint16@
+
+    __defined at:__ @libheif\/heif_components.h 183:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16))
+heif_image_get_component_uint16 =
+  BG.unsafePerformIO hs_bindgen_e7308ea5505ed9aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32_readonly@
+foreign import ccall unsafe "hs_bindgen_1df9b5a9909389e5" hs_bindgen_1df9b5a9909389e5_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32_readonly@
+hs_bindgen_1df9b5a9909389e5 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)))
+hs_bindgen_1df9b5a9909389e5 =
+  BG.fromFFIType hs_bindgen_1df9b5a9909389e5_base
+
+{-# NOINLINE heif_image_get_component_uint32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_uint32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 186:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32))
+heif_image_get_component_uint32_readonly =
+  BG.unsafePerformIO hs_bindgen_1df9b5a9909389e5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32@
+foreign import ccall unsafe "hs_bindgen_c256aea9f44c576a" hs_bindgen_c256aea9f44c576a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32@
+hs_bindgen_c256aea9f44c576a :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)))
+hs_bindgen_c256aea9f44c576a =
+  BG.fromFFIType hs_bindgen_c256aea9f44c576a_base
+
+{-# NOINLINE heif_image_get_component_uint32 #-}
+{-| __C declaration:__ @heif_image_get_component_uint32@
+
+    __defined at:__ @libheif\/heif_components.h 189:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32))
+heif_image_get_component_uint32 =
+  BG.unsafePerformIO hs_bindgen_c256aea9f44c576a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64_readonly@
+foreign import ccall unsafe "hs_bindgen_49af5aabed64b179" hs_bindgen_49af5aabed64b179_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64_readonly@
+hs_bindgen_49af5aabed64b179 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)))
+hs_bindgen_49af5aabed64b179 =
+  BG.fromFFIType hs_bindgen_49af5aabed64b179_base
+
+{-# NOINLINE heif_image_get_component_uint64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_uint64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 192:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64))
+heif_image_get_component_uint64_readonly =
+  BG.unsafePerformIO hs_bindgen_49af5aabed64b179
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64@
+foreign import ccall unsafe "hs_bindgen_c68cd4eb77fcda90" hs_bindgen_c68cd4eb77fcda90_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64@
+hs_bindgen_c68cd4eb77fcda90 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)))
+hs_bindgen_c68cd4eb77fcda90 =
+  BG.fromFFIType hs_bindgen_c68cd4eb77fcda90_base
+
+{-# NOINLINE heif_image_get_component_uint64 #-}
+{-| __C declaration:__ @heif_image_get_component_uint64@
+
+    __defined at:__ @libheif\/heif_components.h 195:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64))
+heif_image_get_component_uint64 =
+  BG.unsafePerformIO hs_bindgen_c68cd4eb77fcda90
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8_readonly@
+foreign import ccall unsafe "hs_bindgen_430e6a5279a8eb49" hs_bindgen_430e6a5279a8eb49_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8_readonly@
+hs_bindgen_430e6a5279a8eb49 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)))
+hs_bindgen_430e6a5279a8eb49 =
+  BG.fromFFIType hs_bindgen_430e6a5279a8eb49_base
+
+{-# NOINLINE heif_image_get_component_int8_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int8_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 198:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8))
+heif_image_get_component_int8_readonly =
+  BG.unsafePerformIO hs_bindgen_430e6a5279a8eb49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8@
+foreign import ccall unsafe "hs_bindgen_2405d11fd23fb924" hs_bindgen_2405d11fd23fb924_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8@
+hs_bindgen_2405d11fd23fb924 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)))
+hs_bindgen_2405d11fd23fb924 =
+  BG.fromFFIType hs_bindgen_2405d11fd23fb924_base
+
+{-# NOINLINE heif_image_get_component_int8 #-}
+{-| __C declaration:__ @heif_image_get_component_int8@
+
+    __defined at:__ @libheif\/heif_components.h 201:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8))
+heif_image_get_component_int8 =
+  BG.unsafePerformIO hs_bindgen_2405d11fd23fb924
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16_readonly@
+foreign import ccall unsafe "hs_bindgen_c938737756603ecb" hs_bindgen_c938737756603ecb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16_readonly@
+hs_bindgen_c938737756603ecb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)))
+hs_bindgen_c938737756603ecb =
+  BG.fromFFIType hs_bindgen_c938737756603ecb_base
+
+{-# NOINLINE heif_image_get_component_int16_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 204:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16))
+heif_image_get_component_int16_readonly =
+  BG.unsafePerformIO hs_bindgen_c938737756603ecb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16@
+foreign import ccall unsafe "hs_bindgen_4bd5f9edeeb4a65f" hs_bindgen_4bd5f9edeeb4a65f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16@
+hs_bindgen_4bd5f9edeeb4a65f :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)))
+hs_bindgen_4bd5f9edeeb4a65f =
+  BG.fromFFIType hs_bindgen_4bd5f9edeeb4a65f_base
+
+{-# NOINLINE heif_image_get_component_int16 #-}
+{-| __C declaration:__ @heif_image_get_component_int16@
+
+    __defined at:__ @libheif\/heif_components.h 207:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16))
+heif_image_get_component_int16 =
+  BG.unsafePerformIO hs_bindgen_4bd5f9edeeb4a65f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32_readonly@
+foreign import ccall unsafe "hs_bindgen_cd7e0a4240e9ab65" hs_bindgen_cd7e0a4240e9ab65_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32_readonly@
+hs_bindgen_cd7e0a4240e9ab65 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)))
+hs_bindgen_cd7e0a4240e9ab65 =
+  BG.fromFFIType hs_bindgen_cd7e0a4240e9ab65_base
+
+{-# NOINLINE heif_image_get_component_int32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 210:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32))
+heif_image_get_component_int32_readonly =
+  BG.unsafePerformIO hs_bindgen_cd7e0a4240e9ab65
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32@
+foreign import ccall unsafe "hs_bindgen_8e14a238fb4bdb2f" hs_bindgen_8e14a238fb4bdb2f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32@
+hs_bindgen_8e14a238fb4bdb2f :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)))
+hs_bindgen_8e14a238fb4bdb2f =
+  BG.fromFFIType hs_bindgen_8e14a238fb4bdb2f_base
+
+{-# NOINLINE heif_image_get_component_int32 #-}
+{-| __C declaration:__ @heif_image_get_component_int32@
+
+    __defined at:__ @libheif\/heif_components.h 213:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32))
+heif_image_get_component_int32 =
+  BG.unsafePerformIO hs_bindgen_8e14a238fb4bdb2f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64_readonly@
+foreign import ccall unsafe "hs_bindgen_8208ed7cda7cd335" hs_bindgen_8208ed7cda7cd335_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64_readonly@
+hs_bindgen_8208ed7cda7cd335 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)))
+hs_bindgen_8208ed7cda7cd335 =
+  BG.fromFFIType hs_bindgen_8208ed7cda7cd335_base
+
+{-# NOINLINE heif_image_get_component_int64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 216:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64))
+heif_image_get_component_int64_readonly =
+  BG.unsafePerformIO hs_bindgen_8208ed7cda7cd335
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64@
+foreign import ccall unsafe "hs_bindgen_845006cd5c3d5175" hs_bindgen_845006cd5c3d5175_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64@
+hs_bindgen_845006cd5c3d5175 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)))
+hs_bindgen_845006cd5c3d5175 =
+  BG.fromFFIType hs_bindgen_845006cd5c3d5175_base
+
+{-# NOINLINE heif_image_get_component_int64 #-}
+{-| __C declaration:__ @heif_image_get_component_int64@
+
+    __defined at:__ @libheif\/heif_components.h 219:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64))
+heif_image_get_component_int64 =
+  BG.unsafePerformIO hs_bindgen_845006cd5c3d5175
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32_readonly@
+foreign import ccall unsafe "hs_bindgen_a342a573d33f4eef" hs_bindgen_a342a573d33f4eef_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32_readonly@
+hs_bindgen_a342a573d33f4eef :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CFloat)))
+hs_bindgen_a342a573d33f4eef =
+  BG.fromFFIType hs_bindgen_a342a573d33f4eef_base
+
+{-# NOINLINE heif_image_get_component_float32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_float32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 222:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CFloat))
+heif_image_get_component_float32_readonly =
+  BG.unsafePerformIO hs_bindgen_a342a573d33f4eef
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32@
+foreign import ccall unsafe "hs_bindgen_1d22608c8fd3d1cd" hs_bindgen_1d22608c8fd3d1cd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32@
+hs_bindgen_1d22608c8fd3d1cd :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CFloat)))
+hs_bindgen_1d22608c8fd3d1cd =
+  BG.fromFFIType hs_bindgen_1d22608c8fd3d1cd_base
+
+{-# NOINLINE heif_image_get_component_float32 #-}
+{-| __C declaration:__ @heif_image_get_component_float32@
+
+    __defined at:__ @libheif\/heif_components.h 225:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CFloat))
+heif_image_get_component_float32 =
+  BG.unsafePerformIO hs_bindgen_1d22608c8fd3d1cd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64_readonly@
+foreign import ccall unsafe "hs_bindgen_9a6ea0b8cce5e1a4" hs_bindgen_9a6ea0b8cce5e1a4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64_readonly@
+hs_bindgen_9a6ea0b8cce5e1a4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CDouble)))
+hs_bindgen_9a6ea0b8cce5e1a4 =
+  BG.fromFFIType hs_bindgen_9a6ea0b8cce5e1a4_base
+
+{-# NOINLINE heif_image_get_component_float64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_float64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 228:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CDouble))
+heif_image_get_component_float64_readonly =
+  BG.unsafePerformIO hs_bindgen_9a6ea0b8cce5e1a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64@
+foreign import ccall unsafe "hs_bindgen_8964541966e9204e" hs_bindgen_8964541966e9204e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64@
+hs_bindgen_8964541966e9204e :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CDouble)))
+hs_bindgen_8964541966e9204e =
+  BG.fromFFIType hs_bindgen_8964541966e9204e_base
+
+{-# NOINLINE heif_image_get_component_float64 #-}
+{-| __C declaration:__ @heif_image_get_component_float64@
+
+    __defined at:__ @libheif\/heif_components.h 231:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CDouble))
+heif_image_get_component_float64 =
+  BG.unsafePerformIO hs_bindgen_8964541966e9204e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32_readonly@
+foreign import ccall unsafe "hs_bindgen_11476314a2836a53" hs_bindgen_11476314a2836a53_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32_readonly@
+hs_bindgen_11476314a2836a53 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex32)))
+hs_bindgen_11476314a2836a53 =
+  BG.fromFFIType hs_bindgen_11476314a2836a53_base
+
+{-# NOINLINE heif_image_get_component_complex32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_complex32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 234:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex32))
+heif_image_get_component_complex32_readonly =
+  BG.unsafePerformIO hs_bindgen_11476314a2836a53
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32@
+foreign import ccall unsafe "hs_bindgen_66fc2cecd8106650" hs_bindgen_66fc2cecd8106650_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32@
+hs_bindgen_66fc2cecd8106650 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex32)))
+hs_bindgen_66fc2cecd8106650 =
+  BG.fromFFIType hs_bindgen_66fc2cecd8106650_base
+
+{-# NOINLINE heif_image_get_component_complex32 #-}
+{-| __C declaration:__ @heif_image_get_component_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 237:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex32))
+heif_image_get_component_complex32 =
+  BG.unsafePerformIO hs_bindgen_66fc2cecd8106650
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64_readonly@
+foreign import ccall unsafe "hs_bindgen_d60d5ecfd6455d28" hs_bindgen_d60d5ecfd6455d28_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64_readonly@
+hs_bindgen_d60d5ecfd6455d28 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex64)))
+hs_bindgen_d60d5ecfd6455d28 =
+  BG.fromFFIType hs_bindgen_d60d5ecfd6455d28_base
+
+{-# NOINLINE heif_image_get_component_complex64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_complex64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 240:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex64))
+heif_image_get_component_complex64_readonly =
+  BG.unsafePerformIO hs_bindgen_d60d5ecfd6455d28
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64@
+foreign import ccall unsafe "hs_bindgen_e96e94fa783df07c" hs_bindgen_e96e94fa783df07c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64@
+hs_bindgen_e96e94fa783df07c :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex64)))
+hs_bindgen_e96e94fa783df07c =
+  BG.fromFFIType hs_bindgen_e96e94fa783df07c_base
+
+{-# NOINLINE heif_image_get_component_complex64 #-}
+{-| __C declaration:__ @heif_image_get_component_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 243:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex64))
+heif_image_get_component_complex64 =
+  BG.unsafePerformIO hs_bindgen_e96e94fa783df07c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_e51068abbd490a0e" hs_bindgen_e51068abbd490a0e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_gimi_component_content_id@
+hs_bindgen_e51068abbd490a0e :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_e51068abbd490a0e =
+  BG.fromFFIType hs_bindgen_e51068abbd490a0e_base
+
+{-# NOINLINE heif_image_set_gimi_component_content_id #-}
+{-| __C declaration:__ @heif_image_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_components.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_gimi_component_content_id :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_image_set_gimi_component_content_id =
+  BG.unsafePerformIO hs_bindgen_e51068abbd490a0e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_0f97f63c89f3cfea" hs_bindgen_0f97f63c89f3cfea_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_omaf_image_projection@
+hs_bindgen_0f97f63c89f3cfea :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_omaf_image_projection))
+hs_bindgen_0f97f63c89f3cfea =
+  BG.fromFFIType hs_bindgen_0f97f63c89f3cfea_base
+
+{-# NOINLINE heif_image_handle_get_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_handle_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 83:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_omaf_image_projection :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_omaf_image_projection)
+heif_image_handle_get_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_0f97f63c89f3cfea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_6fbccb1e4f1b88f8" hs_bindgen_6fbccb1e4f1b88f8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_omaf_image_projection@
+hs_bindgen_6fbccb1e4f1b88f8 :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> Heif_omaf_image_projection -> IO ()))
+hs_bindgen_6fbccb1e4f1b88f8 =
+  BG.fromFFIType hs_bindgen_6fbccb1e4f1b88f8_base
+
+{-# NOINLINE heif_image_handle_set_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_handle_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 86:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_omaf_image_projection :: BG.FunPtr (BG.Ptr Heif_image_handle -> Heif_omaf_image_projection -> IO ())
+heif_image_handle_set_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_6fbccb1e4f1b88f8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_c3044c458d0dafed" hs_bindgen_c3044c458d0dafed_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_omaf_image_projection@
+hs_bindgen_c3044c458d0dafed :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_omaf_image_projection))
+hs_bindgen_c3044c458d0dafed =
+  BG.fromFFIType hs_bindgen_c3044c458d0dafed_base
+
+{-# NOINLINE heif_image_get_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 94:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_omaf_image_projection :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_omaf_image_projection)
+heif_image_get_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_c3044c458d0dafed
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_c9668dd5bc64b2fe" hs_bindgen_c9668dd5bc64b2fe_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_omaf_image_projection@
+hs_bindgen_c9668dd5bc64b2fe :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_omaf_image_projection -> IO ()))
+hs_bindgen_c9668dd5bc64b2fe =
+  BG.fromFFIType hs_bindgen_c9668dd5bc64b2fe_base
+
+{-# NOINLINE heif_image_set_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 97:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_omaf_image_projection :: BG.FunPtr (BG.Ptr Heif_image -> Heif_omaf_image_projection -> IO ())
+heif_image_set_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_c9668dd5bc64b2fe
diff --git a/src-native/Codec/HEIF/Bindings/Generated/Global.hs b/src-native/Codec/HEIF/Bindings/Generated/Global.hs
new file mode 100644
--- /dev/null
+++ b/src-native/Codec/HEIF/Bindings/Generated/Global.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.Global
+    ( Codec.HEIF.Bindings.Generated.Global.heif_error_success
+    )
+  where
+
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_error_success */"
+  , "__attribute__ ((const))"
+  , "heif_error const *hs_bindgen_709a0362ac0b2f83 (void)"
+  , "{"
+  , "  return &heif_error_success;"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_error_success@
+foreign import ccall unsafe "hs_bindgen_709a0362ac0b2f83" hs_bindgen_709a0362ac0b2f83_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_error_success@
+hs_bindgen_709a0362ac0b2f83 :: IO (PtrConst.PtrConst Heif_error)
+hs_bindgen_709a0362ac0b2f83 =
+  BG.fromFFIType hs_bindgen_709a0362ac0b2f83_base
+
+{-# NOINLINE hs_bindgen_1c82b35685b91c76 #-}
+{-| __C declaration:__ @heif_error_success@
+
+    __defined at:__ @libheif\/heif_error.h 304:37@
+
+    __exported by:__ @libheif\/heif.h@
+
+    __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_heif_error_success@
+-}
+hs_bindgen_1c82b35685b91c76 :: PtrConst.PtrConst Heif_error
+hs_bindgen_1c82b35685b91c76 =
+  BG.unsafePerformIO hs_bindgen_709a0362ac0b2f83
+
+{-# NOINLINE heif_error_success #-}
+heif_error_success :: Heif_error
+heif_error_success =
+  BG.unsafePerformIO (PtrConst.peek hs_bindgen_1c82b35685b91c76)
diff --git a/src-native/Codec/HEIF/Bindings/Generated/Safe.hs b/src-native/Codec/HEIF/Bindings/Generated/Safe.hs
new file mode 100644
--- /dev/null
+++ b/src-native/Codec/HEIF/Bindings/Generated/Safe.hs
@@ -0,0 +1,11179 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.Safe
+    ( Codec.HEIF.Bindings.Generated.Safe.heif_get_version
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number_major
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number_minor
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number_maintenance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_string_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_init
+    , Codec.HEIF.Bindings.Generated.Safe.heif_deinit
+    , Codec.HEIF.Bindings.Generated.Safe.heif_load_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_load_plugins
+    , Codec.HEIF.Bindings.Generated.Safe.heif_unload_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Safe.heif_free_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Safe.heif_register_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_register_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_register_decoder
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_colorspace
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_chroma_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_primary_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_primary_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_crop
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_extract_area
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_bits_per_pixel_range
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_channel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane_readonly2
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane2
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_scale_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_extend_to_size_fill_with_zero
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_decoding_warnings
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_decoding_warning
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_create
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_plane
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_plane_safe
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_extend_padding_to_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_set_defaults
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_ext_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_ext_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_ext_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_set_color_primaries
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_set_transfer_characteristics
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_set_matrix_coefficients
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_mastering_display_colour_volume_decode
+    , Codec.HEIF.Bindings.Generated.Safe.heif_read_main_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_read_minor_version_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_fourcc_to_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_brand_to_fourcc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_has_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_list_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Safe.heif_free_list_of_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_file_mime_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_check_filetype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_has_compatible_filetype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_check_jpeg_filetype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_main_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_metadata_compression_method_supported
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_metadata_blocks
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_metadata_block_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_content_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_item_uri_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_exif_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_XMP_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_XMP_metadata2
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_generic_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_generic_uri_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_depth_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_depth_images
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_depth_image_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_depth_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_depth_representation_info_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_depth_image_representation_info
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_thumbnails
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_thumbnail_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_thumbnail
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_encode_thumbnail
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_assign_thumbnail
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_auxiliary_images
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_auxiliary_image_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_release_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_auxiliary_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_free_auxiliary_types
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_entity_groups
+    , Codec.HEIF.Bindings.Generated.Safe.heif_entity_groups_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_global_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_disabled_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_maximum_image_size_limit
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_file
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_memory
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_memory_without_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_reader
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_number_of_top_level_images
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_is_top_level_image_ID
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_list_of_top_level_image_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_primary_image_ID
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_primary_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_debug_dump_boxes_to_file
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_write_mini_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_write_to_file
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_write
+    , Codec.HEIF.Bindings.Generated.Safe.heif_have_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_get_compression_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supports_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supports_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_encoder
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_lossy_quality
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_lossless
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_logging_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_list_parameters
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_valid_integer_range
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_valid_integer_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_valid_string_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_integer_valid_range
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter_string
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter_string
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_string_valid_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_integer_valid_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_has_default
+    , Codec.HEIF.Bindings.Generated.Safe.heif_orientation_concat
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoding_options_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_encode_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_overlay_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_primary_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_major_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_unif
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supportes_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supportes_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Safe.heif_have_decoder_for_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoding_options_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_decoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decode_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_is_primary_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_item_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_alpha_channel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_luma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_chroma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_preferred_decoding_colorspace
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_ispe_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_ispe_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_context
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_cmpd_components
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_cmpd_component_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_cmpd_component_type_uri
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_gimi_component_content_ids
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_image_tiling
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_grid_image_tile_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_decode_image_tile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_encode_grid
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_grid_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_image_tile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_number_of_used_components
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_channel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_components
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_component_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_component
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint16_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint16
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int8_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int8
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int16_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int16
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_omaf_image_projection
+    )
+  where
+
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.IsArray as IsA
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "char const *hs_bindgen_526a1f6b22fefe8b (void)"
+  , "{"
+  , "  return (heif_get_version)();"
+  , "}"
+  , "uint32_t hs_bindgen_d348cdf389fc821b (void)"
+  , "{"
+  , "  return (heif_get_version_number)();"
+  , "}"
+  , "signed int hs_bindgen_54539907a8a819ec (void)"
+  , "{"
+  , "  return (heif_get_version_number_major)();"
+  , "}"
+  , "signed int hs_bindgen_99688cbd2bdbfbf1 (void)"
+  , "{"
+  , "  return (heif_get_version_number_minor)();"
+  , "}"
+  , "signed int hs_bindgen_8c29009de8a18700 (void)"
+  , "{"
+  , "  return (heif_get_version_number_maintenance)();"
+  , "}"
+  , "void hs_bindgen_fcaafd84ca7cd587 ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_string_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_3ca612619d3ab3ae ("
+  , "  heif_init_params *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_init)(arg1);"
+  , "}"
+  , "void hs_bindgen_9757d907b81ea727 (void)"
+  , "{"
+  , "  (heif_deinit)();"
+  , "}"
+  , "void hs_bindgen_d87782b5fd1266aa ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_load_plugin)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_810a0abbae4db007 ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  signed int *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_load_plugins)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_8dc42646c10ca139 ("
+  , "  heif_plugin_info const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_unload_plugin)(arg1);"
+  , "}"
+  , "char const *const *hs_bindgen_576d8a6064774f22 (void)"
+  , "{"
+  , "  return (heif_get_plugin_directories)();"
+  , "}"
+  , "void hs_bindgen_515afb4714206d4e ("
+  , "  char const *const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_plugin_directories)(arg1);"
+  , "}"
+  , "void hs_bindgen_4723fe4fa34139fb ("
+  , "  heif_decoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_decoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_39215f276df43117 ("
+  , "  heif_encoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_encoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_ba37352b5e42f3a1 ("
+  , "  heif_context *arg1,"
+  , "  heif_decoder_plugin const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_register_decoder)(arg1, arg2);"
+  , "}"
+  , "heif_colorspace hs_bindgen_0e1ae4cfeb1ed87e ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_colorspace)(arg1);"
+  , "}"
+  , "heif_chroma hs_bindgen_8c2218fdbacdba5b ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_chroma_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_1ccc91118173a9e1 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_width)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d2e454a8a0e1e648 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_b5b1443b20a8511b ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_827b20df504b1a95 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_height)(arg1);"
+  , "}"
+  , "void hs_bindgen_aceb30cee371fd39 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_crop)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_ba79018a9ec3506c ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_image **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_extract_area)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "signed int hs_bindgen_5fcef9fa747db223 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_770d1451f25f23d0 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel_range)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_ac6d99ace06cf7a9 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_channel)(arg1, arg2);"
+  , "}"
+  , "uint8_t const *hs_bindgen_047b40903c05997c ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_462f74b6b0e51669 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t const *hs_bindgen_c562b49565dea50d ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly2)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_c7baba8551bab583 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane2)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_356bd5ab0a7e162c ("
+  , "  heif_image const *arg1,"
+  , "  heif_image **arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  heif_scaling_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_scale_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_1f51057f3f3ab220 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_to_size_fill_with_zero)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_0f73243f659b5839 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_decoding_warnings)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_ff4db425910d967f ("
+  , "  heif_image *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_add_decoding_warning)(arg1, *arg2);"
+  , "}"
+  , "void hs_bindgen_40ef7aca6e2177d1 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_c59879f567050fcc ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_382fdd46c680e29d ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d5e4426964217a2b ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_048c16976f9d00a6 ("
+  , "  signed int arg1,"
+  , "  signed int arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_image **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_create)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_39098c398bab3049 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_add_plane)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_b43a95f5d0d97321 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_image_add_plane_safe)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_66befebbb3cfe08f ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_premultiplied_alpha)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7f39c909f50251bd ("
+  , "  heif_image *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "void hs_bindgen_0a9de4fb42d7aef8 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_padding_to_size)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_635c898d9653c258 ("
+  , "  heif_color_conversion_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_set_defaults)(arg1);"
+  , "}"
+  , "heif_color_conversion_options_ext *hs_bindgen_f9767fc846991850 (void)"
+  , "{"
+  , "  return (heif_color_conversion_options_ext_alloc)();"
+  , "}"
+  , "void hs_bindgen_e89e40cb42b3dbf6 ("
+  , "  heif_color_conversion_options_ext *arg1,"
+  , "  heif_color_conversion_options_ext const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_015954e3f538afdf ("
+  , "  heif_color_conversion_options_ext *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_c2e2151a49511790 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_f3b5e52cf4c98431 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_70185cdfc94f6180 ("
+  , "  heif_image_handle const *arg1,"
+  , "  void *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_fd1b0dc517553ea4 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_color_primaries)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4cd780e465edf8f1 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_transfer_characteristics)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4c2b93b4d0d31039 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_matrix_coefficients)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4878761a3eacdfd6 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "heif_color_profile_nclx *hs_bindgen_252b9611425ba79d (void)"
+  , "{"
+  , "  return (heif_nclx_color_profile_alloc)();"
+  , "}"
+  , "void hs_bindgen_baafd267dd3a7eda ("
+  , "  heif_color_profile_nclx *arg1"
+  , ")"
+  , "{"
+  , "  (heif_nclx_color_profile_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_451f04ca40155e84 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_6a45102328f17806 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_ea1a521369743d6e ("
+  , "  heif_image const *arg1,"
+  , "  void *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4a81755ffaafdd5e ("
+  , "  heif_image const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8b84f0de01d3fc38 ("
+  , "  heif_image *arg1,"
+  , "  char const *arg2,"
+  , "  void const *arg3,"
+  , "  size_t const arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_image_set_raw_color_profile)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_290eaac614fe5c21 ("
+  , "  heif_image *arg1,"
+  , "  heif_color_profile_nclx const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_set_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d9106e024a66d6c7 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_content_light_level)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_004c713c5bed589a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_content_light_level)(arg1);"
+  , "}"
+  , "void hs_bindgen_224bdf9ae9bc86e4 ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0573bf5680dead95 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_61eb469d896a68ed ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b94eaa9d4f03b208 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_65fda22aec99af16 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ba412b5c11d4ce2c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "void hs_bindgen_40e6f048c71c0839 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_f5f710dd952f38b2 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7c7394e5ab9a2522 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_e71af6fb39f6c6a7 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_5aefb28b52c74a49 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fb72753dff464187 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e4865cd1be357ee7 ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_9975a4f39370fa33 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_be117bf48bd413ce ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b6a2b9efd97046de ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0392b2a2a62a17b9 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_2cc0bd424cc13ef0 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_d822f8181b9f461f ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_75f707df4737c64c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_88b825fccd56f83a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_d54b499790eb4475 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7af8bd15dda9d8da ("
+  , "  heif_mastering_display_colour_volume const *arg1,"
+  , "  heif_decoded_mastering_display_colour_volume *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_mastering_display_colour_volume_decode)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_eb070136a1fc7d04 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_main_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_99628e0c9a83fd4a ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_minor_version_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_8ddb7de5c3530060 ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_fourcc_to_brand)(arg1);"
+  , "}"
+  , "void hs_bindgen_9ccdf2cb99660b08 ("
+  , "  heif_brand2 arg1,"
+  , "  char *arg2"
+  , ")"
+  , "{"
+  , "  (heif_brand_to_fourcc)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_80dc19fc26906086 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_has_compatible_brand)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_97aa636c233d899b ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_brand2 **arg3,"
+  , "  signed int *arg4,"
+  , "  struct heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_list_compatible_brands)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_9bb6fcadffe04582 ("
+  , "  heif_brand2 *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_list_of_compatible_brands)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_db3e04ae1bcbe4c0 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_get_file_mime_type)(arg1, arg2);"
+  , "}"
+  , "enum heif_filetype_result hs_bindgen_ab7eedc4f1bb8c0b ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_filetype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8913d7bc32d127f4 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_has_compatible_filetype)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d83270b51d72cc95 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_jpeg_filetype)(arg1, arg2);"
+  , "}"
+  , "enum heif_brand hs_bindgen_bae440faea94f3ea ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_main_brand)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_77b745f8ec6e141f ("
+  , "  enum heif_metadata_compression arg1"
+  , ")"
+  , "{"
+  , "  return (heif_metadata_compression_method_supported)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_221fe3032a7fe8dd ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_metadata_blocks)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0789072dbb9a1da7 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_metadata_block_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_a597fdc86acc8f1b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_e419666dded9a0a4 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_content_type)(arg1, arg2);"
+  , "}"
+  , "size_t hs_bindgen_c5dbe28d404f70c2 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_size)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_40f28b061d8968ee ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_metadata)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_5add5de233105e0a ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_item_uri_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_50f28b858c52d38b ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_exif_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_5e1f813465bb1fe7 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_XMP_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_a4bb5759aaf233ed ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  enum heif_metadata_compression arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_add_XMP_metadata2)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_a112ed25576e1ead ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  char const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_4228fc144395b704 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  heif_item_id *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_uri_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "signed int hs_bindgen_c9fd0d64d2e4ff6c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_depth_image)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_3168bad746d58363 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_depth_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_6ce7ff0f64592f3b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_depth_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_bca9f64d9bf4b689 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_depth_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_3e42610ddf090daa ("
+  , "  heif_depth_representation_info const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_depth_representation_info_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_be71395884eb3a2e ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_depth_representation_info const **arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_depth_image_representation_info)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_789c72581f93b4f7 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_thumbnails)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_3f158a04db84b93c ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_thumbnail_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_74fcac5da0f6fe3d ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_0d7512b56eac000e ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_encoder *arg4,"
+  , "  heif_encoding_options const *arg5,"
+  , "  signed int arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_thumbnail)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_efcd1e0532f3cce0 ("
+  , "  struct heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_assign_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_c91e031dfd1a0e78 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_auxiliary_images)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_fcf1bde2005bf76f ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_auxiliary_image_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_7eda525d1bdf7412 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7a949d12902feb72 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_aad627a91e87ac22 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_auxiliary_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_3e5bdbce07abeacb ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_free_auxiliary_types)(arg1, arg2);"
+  , "}"
+  , "heif_entity_group *hs_bindgen_324b9ac9bccacbea ("
+  , "  heif_context const *arg1,"
+  , "  uint32_t arg2,"
+  , "  heif_item_id arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_entity_groups)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_5b6c3bc2afeaec5a ("
+  , "  heif_entity_group *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_entity_groups_release)(arg1, arg2);"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_8bb38c3366b348bc (void)"
+  , "{"
+  , "  return (heif_get_global_security_limits)();"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_21dab9bbdea240f9 (void)"
+  , "{"
+  , "  return (heif_get_disabled_security_limits)();"
+  , "}"
+  , "heif_security_limits *hs_bindgen_5ef579d9235552d1 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_security_limits)(arg1);"
+  , "}"
+  , "void hs_bindgen_57a440143dafec19 ("
+  , "  heif_context *arg1,"
+  , "  heif_security_limits const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_security_limits)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_cf4163e78a532a00 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_maximum_image_size_limit)(arg1, arg2);"
+  , "}"
+  , "heif_context *hs_bindgen_4f11b82642ca89a5 (void)"
+  , "{"
+  , "  return (heif_context_alloc)();"
+  , "}"
+  , "void hs_bindgen_97d3146ab8e2e79e ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  (heif_context_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_da6b2212d5c04e61 ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_reading_options const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_read_from_file)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e14cdfad18c1ee01 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_41af2790f3e2e582 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory_without_copy)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_41beae81a04b6975 ("
+  , "  heif_context *arg1,"
+  , "  heif_reader const *arg2,"
+  , "  void *arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_reader)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_24967fda9033f6a8 ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_number_of_top_level_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_60a32ad03b88d023 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_context_is_top_level_image_ID)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0b88933276286d97 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_list_of_top_level_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d2b9465ca3f1a7a3 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_ID)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_eddef87dcb6b9da2 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_handle)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_64043a0ab8e93721 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_b25f68ddfd09f003 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_debug_dump_boxes_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_33eec71afe55377e ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_write_mini_format)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4ccb67696cf9af48 ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_write_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_567900ed014ef754 ("
+  , "  heif_context *arg1,"
+  , "  heif_writer *arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_write)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_eec4a0d4bef90233 ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_encoder_for_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_52de4c5e7a32818d ("
+  , "  heif_compression_format arg1,"
+  , "  char const *arg2,"
+  , "  heif_encoder_descriptor const **arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_get_encoder_descriptors)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_1174aa754ff0ec8a ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_db3d052821cb7feb ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "heif_compression_format hs_bindgen_7a091fe5257e2928 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_compression_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_9855aa70160fb232 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e8aa3e2ad6e21521 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossless_compression)(arg1);"
+  , "}"
+  , "void hs_bindgen_5e0d51edb7f5e790 ("
+  , "  heif_context *arg1,"
+  , "  heif_encoder_descriptor const *arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e87023be50eb7156 ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder_for_format)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_9ef0bda629baf529 ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoder_release)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_eb93268554bef6fb ("
+  , "  heif_encoder const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_get_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_eb6a076f846bdaa3 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossy_quality)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_979d01b0f5a3cad4 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossless)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_24781b15a9b8e5df ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_logging_level)(arg1, arg2);"
+  , "}"
+  , "heif_encoder_parameter const *const *hs_bindgen_18ea2b17f3c2144a ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_list_parameters)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_af3caa9ff0a88eb8 ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_name)(arg1);"
+  , "}"
+  , "enum heif_encoder_parameter_type hs_bindgen_a1285395e3755e61 ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_type)(arg1);"
+  , "}"
+  , "void hs_bindgen_f5e5f609ff5ef7aa ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_parameter_get_valid_integer_range)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_41c9049f903741b9 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int const **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_encoder_parameter_get_valid_integer_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_83a47350b89b3e72 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  char const *const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_parameter_get_valid_string_values)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_18cabf49ede306b0 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_9904a2037102bffe ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_1bc5d24eb27254b7 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_encoder_parameter_integer_valid_range)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_836ffd64ae147e78 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_19a10bdb28e623c2 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_6e45433398da3eb9 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_string)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_85f0477af2b5af28 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter_string)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_813480544a744b7d ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *const **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_parameter_string_valid_values)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_06fdadacba1a360c ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int *arg7,"
+  , "  signed int const **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_encoder_parameter_integer_valid_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_3e58e2dcaa03feb8 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_931fa955709de69d ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_cadb6a2220566e31 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_has_default)(arg1, arg2);"
+  , "}"
+  , "heif_orientation hs_bindgen_73125422635fa771 ("
+  , "  heif_orientation arg1,"
+  , "  heif_orientation arg2"
+  , ")"
+  , "{"
+  , "  return (heif_orientation_concat)(arg1, arg2);"
+  , "}"
+  , "heif_encoding_options *hs_bindgen_1800acc2f4b03a9f (void)"
+  , "{"
+  , "  return (heif_encoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_fe75402432667b03 ("
+  , "  heif_encoding_options *arg1,"
+  , "  heif_encoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_da67241096710c84 ("
+  , "  heif_encoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_28f09a80ffe40e3d ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_encoder *arg3,"
+  , "  heif_encoding_options const *arg4,"
+  , "  heif_image_handle **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_encode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_60d0c75f40f4d059 ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_item_id const *arg5,"
+  , "  int32_t *arg6,"
+  , "  uint16_t const *arg7,"
+  , "  heif_image_handle **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_context_add_overlay_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_63e1fd26aac84129 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_primary_image)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_97f56663bca77c21 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_major_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_03d0e64d393a7f95 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_add_compatible_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_17c891d9806c5635 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_unif)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7331b243ac8c0c44 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d9ed40b1c61c857e ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossless_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_6b3293489791860e ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  char const *arg3,"
+  , "  heif_encoder_descriptor const **arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_encoder_descriptors)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_28f0ed35cb9d2279 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_max_decoding_threads)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_70c02de3fb64eb44 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_max_decoding_threads)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fae52e49bce8c2d9 ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_decoder_for_format)(arg1);"
+  , "}"
+  , "heif_decoding_options *hs_bindgen_102ab775cba50d0e (void)"
+  , "{"
+  , "  return (heif_decoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_dd38a52f42e667b2 ("
+  , "  heif_decoding_options *arg1,"
+  , "  heif_decoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_9ce764a4e512cd45 ("
+  , "  heif_decoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_89078000e479e916 ("
+  , "  heif_compression_format arg1,"
+  , "  heif_decoder_descriptor const **arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_get_decoder_descriptors)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_6dbb7f5c61ececf8 ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_ac750dacaf5ed61b ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_9df2f46857b2f874 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_decode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_3f481728e9551d14 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_c047b47f9376d997 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_primary_image)(arg1);"
+  , "}"
+  , "heif_item_id hs_bindgen_36d4e2a162ff52b2 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_item_id)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ebd6ded40b5d2ee4 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_43b18c70d95495b8 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d43fe68f9e8aea95 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_alpha_channel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_318428b307f06343 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_be41ab4faa6f8082 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_luma_bits_per_pixel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_984920cbd156ac9b ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_chroma_bits_per_pixel)(arg1);"
+  , "}"
+  , "void hs_bindgen_f5e3531e6391b927 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_colorspace *arg2,"
+  , "  heif_chroma *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_preferred_decoding_colorspace)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_d0e9054b24cf1428 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_dbbbf9b131586b02 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_3c36641a28b1e88c ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_context *hs_bindgen_84a3dea317661a70 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_context)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_e67495bf8fb75694 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_content_id)(arg1);"
+  , "}"
+  , "void hs_bindgen_a61840a08f259978 ("
+  , "  heif_image_handle *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_content_id)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_ecf5d96ae1394088 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_cmpd_components)(arg1);"
+  , "}"
+  , "uint16_t hs_bindgen_c39b365ae6463988 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_df63ee961806d207 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type_uri)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_6a5a1af4a8a1b33e ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_gimi_component_content_ids)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_a39896583d9d4999 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_component_content_id)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_dacd0cb9d512c937 ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_898454a03bf14ab5 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  struct heif_image_tiling *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_image_tiling)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_413be3dbf7649192 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_item_id *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_handle_get_grid_image_tile_id)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_f101837a6b5be78b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  uint32_t arg6,"
+  , "  uint32_t arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_handle_decode_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_164a168311e3f152 ("
+  , "  heif_context *arg1,"
+  , "  heif_image **arg2,"
+  , "  uint16_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_encoder *arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_grid)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_7c8ae7abdb656611 ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_add_grid_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_03065a3517ed4b58 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_image const *arg5,"
+  , "  heif_encoder *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "uint32_t hs_bindgen_4c8ac68e14c896d9 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_number_of_used_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_89f9c71152d117b0 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "heif_channel hs_bindgen_95adbac0d70eaf89 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_channel)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_2563edac91916690 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_width)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_708542ac3769da22 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_24cce2d768157520 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_1b3bc84f810e6784 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_type)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_3427ead05335058d ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_08e2626fbb4c7263 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_8f4c6fe1328df951 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_da1741b447f6b55f ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_type)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_c06a69cd444c0e91 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_246e8aac86313c19 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_58211ee9d9aaff0b ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_component_datatype arg5,"
+  , "  signed int arg6,"
+  , "  uint32_t *arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_add_component)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "uint8_t const *hs_bindgen_f3b3dd6d12db8090 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_797598038668dd27 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t const *hs_bindgen_dd2caf5774deaa63 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t *hs_bindgen_c24b1fb221a59544 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t const *hs_bindgen_f7092ec4941635e4 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t *hs_bindgen_b69a8682c27eebbe ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t const *hs_bindgen_21af790d31a25679 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t *hs_bindgen_052a1b04a5028cc7 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t const *hs_bindgen_0647bc125c518139 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t *hs_bindgen_2b6baabe97efc9ee ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t const *hs_bindgen_05cd3db068fb993a ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t *hs_bindgen_3a8ffa58a1670f46 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t const *hs_bindgen_f59a29fdf460e965 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t *hs_bindgen_80e3e994059d8dc9 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t const *hs_bindgen_9f7c83bd2e97ad43 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t *hs_bindgen_fee1de1a1474b6a3 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64)(arg1, arg2, arg3);"
+  , "}"
+  , "float const *hs_bindgen_05ed1c08b5116807 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "float *hs_bindgen_ad009c9ed1ffc812 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32)(arg1, arg2, arg3);"
+  , "}"
+  , "double const *hs_bindgen_de66df56dbf48814 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "double *hs_bindgen_0ad1b60eeb8d63bd ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 const *hs_bindgen_ac4a57dd34ca375a ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 *hs_bindgen_cfa79a05b01a8fc7 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 const *hs_bindgen_e0f8d25e700e39b7 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 *hs_bindgen_378fc308bf4e003a ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_430d40ab533188ef ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_dc0b57c80dcd5111 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_c2c7dbcbc67f17cb ("
+  , "  heif_image_handle *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_78b31f0f9d6a835b ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_88e80c816c94bac9 ("
+  , "  heif_image *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version@
+foreign import ccall safe "hs_bindgen_526a1f6b22fefe8b" hs_bindgen_526a1f6b22fefe8b_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version@
+hs_bindgen_526a1f6b22fefe8b :: IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_526a1f6b22fefe8b =
+  BG.fromFFIType hs_bindgen_526a1f6b22fefe8b_base
+
+{-| __C declaration:__ @heif_get_version@
+
+    __defined at:__ @libheif\/heif_library.h 72:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version :: IO (PtrConst.PtrConst BG.CChar)
+heif_get_version = hs_bindgen_526a1f6b22fefe8b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number@
+foreign import ccall safe "hs_bindgen_d348cdf389fc821b" hs_bindgen_d348cdf389fc821b_base ::
+     IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number@
+hs_bindgen_d348cdf389fc821b :: IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_d348cdf389fc821b =
+  BG.fromFFIType hs_bindgen_d348cdf389fc821b_base
+
+{-| __C declaration:__ @heif_get_version_number@
+
+    __defined at:__ @libheif\/heif_library.h 76:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number :: IO HsBindgen.Runtime.LibC.Word32
+heif_get_version_number = hs_bindgen_d348cdf389fc821b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_major@
+foreign import ccall safe "hs_bindgen_54539907a8a819ec" hs_bindgen_54539907a8a819ec_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_major@
+hs_bindgen_54539907a8a819ec :: IO BG.CInt
+hs_bindgen_54539907a8a819ec =
+  BG.fromFFIType hs_bindgen_54539907a8a819ec_base
+
+{-| __C declaration:__ @heif_get_version_number_major@
+
+    __defined at:__ @libheif\/heif_library.h 79:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_major :: IO BG.CInt
+heif_get_version_number_major =
+  hs_bindgen_54539907a8a819ec
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_minor@
+foreign import ccall safe "hs_bindgen_99688cbd2bdbfbf1" hs_bindgen_99688cbd2bdbfbf1_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_minor@
+hs_bindgen_99688cbd2bdbfbf1 :: IO BG.CInt
+hs_bindgen_99688cbd2bdbfbf1 =
+  BG.fromFFIType hs_bindgen_99688cbd2bdbfbf1_base
+
+{-| __C declaration:__ @heif_get_version_number_minor@
+
+    __defined at:__ @libheif\/heif_library.h 81:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_minor :: IO BG.CInt
+heif_get_version_number_minor =
+  hs_bindgen_99688cbd2bdbfbf1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_maintenance@
+foreign import ccall safe "hs_bindgen_8c29009de8a18700" hs_bindgen_8c29009de8a18700_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_maintenance@
+hs_bindgen_8c29009de8a18700 :: IO BG.CInt
+hs_bindgen_8c29009de8a18700 =
+  BG.fromFFIType hs_bindgen_8c29009de8a18700_base
+
+{-| __C declaration:__ @heif_get_version_number_maintenance@
+
+    __defined at:__ @libheif\/heif_library.h 83:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_maintenance :: IO BG.CInt
+heif_get_version_number_maintenance =
+  hs_bindgen_8c29009de8a18700
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_string_release@
+foreign import ccall safe "hs_bindgen_fcaafd84ca7cd587" hs_bindgen_fcaafd84ca7cd587_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_string_release@
+hs_bindgen_fcaafd84ca7cd587 ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_fcaafd84ca7cd587 =
+  BG.fromFFIType hs_bindgen_fcaafd84ca7cd587_base
+
+{-| __C declaration:__ @heif_string_release@
+
+    __defined at:__ @libheif\/heif_library.h 100:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_string_release ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+heif_string_release = hs_bindgen_fcaafd84ca7cd587
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_init@
+foreign import ccall safe "hs_bindgen_3ca612619d3ab3ae" hs_bindgen_3ca612619d3ab3ae_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_init@
+hs_bindgen_3ca612619d3ab3ae ::
+     BG.Ptr Heif_init_params
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_3ca612619d3ab3ae =
+  BG.fromFFIType hs_bindgen_3ca612619d3ab3ae_base
+
+{-| __C declaration:__ @heif_init@
+
+    __defined at:__ @libheif\/heif_library.h 133:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_init ::
+     BG.Ptr Heif_init_params
+  -> IO Heif_error
+heif_init =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_3ca612619d3ab3ae x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_deinit@
+foreign import ccall safe "hs_bindgen_9757d907b81ea727" hs_bindgen_9757d907b81ea727_base ::
+     IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_deinit@
+hs_bindgen_9757d907b81ea727 :: IO ()
+hs_bindgen_9757d907b81ea727 =
+  BG.fromFFIType hs_bindgen_9757d907b81ea727_base
+
+{-| __C declaration:__ @heif_deinit@
+
+    __defined at:__ @libheif\/heif_library.h 148:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_deinit :: IO ()
+heif_deinit = hs_bindgen_9757d907b81ea727
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugin@
+foreign import ccall safe "hs_bindgen_d87782b5fd1266aa" hs_bindgen_d87782b5fd1266aa_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugin@
+hs_bindgen_d87782b5fd1266aa ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d87782b5fd1266aa =
+  BG.fromFFIType hs_bindgen_d87782b5fd1266aa_base
+
+{-| __C declaration:__ @heif_load_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 170:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugin ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugin@
+  -> IO Heif_error
+heif_load_plugin =
+  \filename0 ->
+    \out_plugin1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_d87782b5fd1266aa filename0 out_plugin1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugins@
+foreign import ccall safe "hs_bindgen_810a0abbae4db007" hs_bindgen_810a0abbae4db007_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugins@
+hs_bindgen_810a0abbae4db007 ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_810a0abbae4db007 =
+  BG.fromFFIType hs_bindgen_810a0abbae4db007_base
+
+{-| __C declaration:__ @heif_load_plugins@
+
+    __defined at:__ @libheif\/heif_library.h 173:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugins ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @directory@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugins@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_nPluginsLoaded@
+  -> BG.CInt
+     -- ^ __C declaration:__ @output_array_size@
+  -> IO Heif_error
+heif_load_plugins =
+  \directory0 ->
+    \out_plugins1 ->
+      \out_nPluginsLoaded2 ->
+        \output_array_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_810a0abbae4db007 directory0 out_plugins1 out_nPluginsLoaded2 output_array_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_unload_plugin@
+foreign import ccall safe "hs_bindgen_8dc42646c10ca139" hs_bindgen_8dc42646c10ca139_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_unload_plugin@
+hs_bindgen_8dc42646c10ca139 ::
+     PtrConst.PtrConst Heif_plugin_info
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8dc42646c10ca139 =
+  BG.fromFFIType hs_bindgen_8dc42646c10ca139_base
+
+{-| __C declaration:__ @heif_unload_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 179:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_unload_plugin ::
+     PtrConst.PtrConst Heif_plugin_info
+     -- ^ __C declaration:__ @plugin@
+  -> IO Heif_error
+heif_unload_plugin =
+  \plugin0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_8dc42646c10ca139 plugin0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_plugin_directories@
+foreign import ccall safe "hs_bindgen_576d8a6064774f22" hs_bindgen_576d8a6064774f22_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_plugin_directories@
+hs_bindgen_576d8a6064774f22 :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+hs_bindgen_576d8a6064774f22 =
+  BG.fromFFIType hs_bindgen_576d8a6064774f22_base
+
+{-| __C declaration:__ @heif_get_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 185:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_plugin_directories :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+heif_get_plugin_directories =
+  hs_bindgen_576d8a6064774f22
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_plugin_directories@
+foreign import ccall safe "hs_bindgen_515afb4714206d4e" hs_bindgen_515afb4714206d4e_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_plugin_directories@
+hs_bindgen_515afb4714206d4e ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_515afb4714206d4e =
+  BG.fromFFIType hs_bindgen_515afb4714206d4e_base
+
+{-| __C declaration:__ @heif_free_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 188:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_plugin_directories ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+heif_free_plugin_directories =
+  hs_bindgen_515afb4714206d4e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder_plugin@
+foreign import ccall safe "hs_bindgen_4723fe4fa34139fb" hs_bindgen_4723fe4fa34139fb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder_plugin@
+hs_bindgen_4723fe4fa34139fb ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4723fe4fa34139fb =
+  BG.fromFFIType hs_bindgen_4723fe4fa34139fb_base
+
+{-| __C declaration:__ @heif_register_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder_plugin ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_4723fe4fa34139fb x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_encoder_plugin@
+foreign import ccall safe "hs_bindgen_39215f276df43117" hs_bindgen_39215f276df43117_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_encoder_plugin@
+hs_bindgen_39215f276df43117 ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_39215f276df43117 =
+  BG.fromFFIType hs_bindgen_39215f276df43117_base
+
+{-| __C declaration:__ @heif_register_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 200:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_encoder_plugin ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> IO Heif_error
+heif_register_encoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_39215f276df43117 x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder@
+foreign import ccall safe "hs_bindgen_ba37352b5e42f3a1" hs_bindgen_ba37352b5e42f3a1_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder@
+hs_bindgen_ba37352b5e42f3a1 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ba37352b5e42f3a1 =
+  BG.fromFFIType hs_bindgen_ba37352b5e42f3a1_base
+
+{-| __C declaration:__ @heif_register_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 205:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @heif@
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder =
+  \heif0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_ba37352b5e42f3a1 heif0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_colorspace@
+foreign import ccall safe "hs_bindgen_0e1ae4cfeb1ed87e" hs_bindgen_0e1ae4cfeb1ed87e_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_colorspace@
+hs_bindgen_0e1ae4cfeb1ed87e ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+hs_bindgen_0e1ae4cfeb1ed87e =
+  BG.fromFFIType hs_bindgen_0e1ae4cfeb1ed87e_base
+
+{-| __C declaration:__ @heif_image_get_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 150:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_colorspace ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+heif_image_get_colorspace =
+  hs_bindgen_0e1ae4cfeb1ed87e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_chroma_format@
+foreign import ccall safe "hs_bindgen_8c2218fdbacdba5b" hs_bindgen_8c2218fdbacdba5b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_chroma_format@
+hs_bindgen_8c2218fdbacdba5b ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+hs_bindgen_8c2218fdbacdba5b =
+  BG.fromFFIType hs_bindgen_8c2218fdbacdba5b_base
+
+{-| __C declaration:__ @heif_image_get_chroma_format@
+
+    __defined at:__ @libheif\/heif_image.h 154:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_chroma_format ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+heif_image_get_chroma_format =
+  hs_bindgen_8c2218fdbacdba5b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_width@
+foreign import ccall safe "hs_bindgen_1ccc91118173a9e1" hs_bindgen_1ccc91118173a9e1_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_width@
+hs_bindgen_1ccc91118173a9e1 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_1ccc91118173a9e1 =
+  BG.fromFFIType hs_bindgen_1ccc91118173a9e1_base
+
+{-| __C declaration:__ @heif_image_get_width@
+
+    __defined at:__ @libheif\/heif_image.h 164:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_width = hs_bindgen_1ccc91118173a9e1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_height@
+foreign import ccall safe "hs_bindgen_d2e454a8a0e1e648" hs_bindgen_d2e454a8a0e1e648_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_height@
+hs_bindgen_d2e454a8a0e1e648 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_d2e454a8a0e1e648 =
+  BG.fromFFIType hs_bindgen_d2e454a8a0e1e648_base
+
+{-| __C declaration:__ @heif_image_get_height@
+
+    __defined at:__ @libheif\/heif_image.h 174:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_height = hs_bindgen_d2e454a8a0e1e648
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_width@
+foreign import ccall safe "hs_bindgen_b5b1443b20a8511b" hs_bindgen_b5b1443b20a8511b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_width@
+hs_bindgen_b5b1443b20a8511b ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_b5b1443b20a8511b =
+  BG.fromFFIType hs_bindgen_b5b1443b20a8511b_base
+
+{-| __C declaration:__ @heif_image_get_primary_width@
+
+    __defined at:__ @libheif\/heif_image.h 186:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_width =
+  hs_bindgen_b5b1443b20a8511b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_height@
+foreign import ccall safe "hs_bindgen_827b20df504b1a95" hs_bindgen_827b20df504b1a95_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_height@
+hs_bindgen_827b20df504b1a95 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_827b20df504b1a95 =
+  BG.fromFFIType hs_bindgen_827b20df504b1a95_base
+
+{-| __C declaration:__ @heif_image_get_primary_height@
+
+    __defined at:__ @libheif\/heif_image.h 198:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_height =
+  hs_bindgen_827b20df504b1a95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_crop@
+foreign import ccall safe "hs_bindgen_aceb30cee371fd39" hs_bindgen_aceb30cee371fd39_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_crop@
+hs_bindgen_aceb30cee371fd39 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_aceb30cee371fd39 =
+  BG.fromFFIType hs_bindgen_aceb30cee371fd39_base
+
+{-| __C declaration:__ @heif_image_crop@
+
+    __defined at:__ @libheif\/heif_image.h 222:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_crop ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @img@
+  -> BG.CInt
+     -- ^ __C declaration:__ @left@
+  -> BG.CInt
+     -- ^ __C declaration:__ @right@
+  -> BG.CInt
+     -- ^ __C declaration:__ @top@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bottom@
+  -> IO Heif_error
+heif_image_crop =
+  \img0 ->
+    \left1 ->
+      \right2 ->
+        \top3 ->
+          \bottom4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_aceb30cee371fd39 img0 left1 right2 top3 bottom4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extract_area@
+foreign import ccall safe "hs_bindgen_ba79018a9ec3506c" hs_bindgen_ba79018a9ec3506c_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extract_area@
+hs_bindgen_ba79018a9ec3506c ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ba79018a9ec3506c =
+  BG.fromFFIType hs_bindgen_ba79018a9ec3506c_base
+
+{-| __C declaration:__ @heif_image_extract_area@
+
+    __defined at:__ @libheif\/heif_image.h 226:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extract_area ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @x0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @y0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @w@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @h@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_extract_area =
+  \x0 ->
+    \x01 ->
+      \y02 ->
+        \w3 ->
+          \h4 ->
+            \limits5 ->
+              \out_image6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_ba79018a9ec3506c x0 x01 y02 w3 h4 limits5 out_image6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_5fcef9fa747db223" hs_bindgen_5fcef9fa747db223_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel@
+hs_bindgen_5fcef9fa747db223 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_5fcef9fa747db223 =
+  BG.fromFFIType hs_bindgen_5fcef9fa747db223_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image.h 238:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel =
+  hs_bindgen_5fcef9fa747db223
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel_range@
+foreign import ccall safe "hs_bindgen_770d1451f25f23d0" hs_bindgen_770d1451f25f23d0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel_range@
+hs_bindgen_770d1451f25f23d0 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_770d1451f25f23d0 =
+  BG.fromFFIType hs_bindgen_770d1451f25f23d0_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel_range@
+
+    __defined at:__ @libheif\/heif_image.h 247:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel_range ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel_range =
+  hs_bindgen_770d1451f25f23d0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_channel@
+foreign import ccall safe "hs_bindgen_ac6d99ace06cf7a9" hs_bindgen_ac6d99ace06cf7a9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_channel@
+hs_bindgen_ac6d99ace06cf7a9 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_ac6d99ace06cf7a9 =
+  BG.fromFFIType hs_bindgen_ac6d99ace06cf7a9_base
+
+{-| __C declaration:__ @heif_image_has_channel@
+
+    __defined at:__ @libheif\/heif_image.h 250:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_channel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_has_channel = hs_bindgen_ac6d99ace06cf7a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly@
+foreign import ccall safe "hs_bindgen_047b40903c05997c" hs_bindgen_047b40903c05997c_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly@
+hs_bindgen_047b40903c05997c ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_047b40903c05997c =
+  BG.fromFFIType hs_bindgen_047b40903c05997c_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly@
+
+    __defined at:__ @libheif\/heif_image.h 258:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly =
+  hs_bindgen_047b40903c05997c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane@
+foreign import ccall safe "hs_bindgen_462f74b6b0e51669" hs_bindgen_462f74b6b0e51669_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane@
+hs_bindgen_462f74b6b0e51669 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_462f74b6b0e51669 =
+  BG.fromFFIType hs_bindgen_462f74b6b0e51669_base
+
+{-| __C declaration:__ @heif_image_get_plane@
+
+    __defined at:__ @libheif\/heif_image.h 264:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane = hs_bindgen_462f74b6b0e51669
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly2@
+foreign import ccall safe "hs_bindgen_c562b49565dea50d" hs_bindgen_c562b49565dea50d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly2@
+hs_bindgen_c562b49565dea50d ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_c562b49565dea50d =
+  BG.fromFFIType hs_bindgen_c562b49565dea50d_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly2@
+
+    __defined at:__ @libheif\/heif_image.h 273:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly2 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly2 =
+  hs_bindgen_c562b49565dea50d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane2@
+foreign import ccall safe "hs_bindgen_c7baba8551bab583" hs_bindgen_c7baba8551bab583_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane2@
+hs_bindgen_c7baba8551bab583 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_c7baba8551bab583 =
+  BG.fromFFIType hs_bindgen_c7baba8551bab583_base
+
+{-| __C declaration:__ @heif_image_get_plane2@
+
+    __defined at:__ @libheif\/heif_image.h 278:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane2 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane2 = hs_bindgen_c7baba8551bab583
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_scale_image@
+foreign import ccall safe "hs_bindgen_356bd5ab0a7e162c" hs_bindgen_356bd5ab0a7e162c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_scale_image@
+hs_bindgen_356bd5ab0a7e162c ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_scaling_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_356bd5ab0a7e162c =
+  BG.fromFFIType hs_bindgen_356bd5ab0a7e162c_base
+
+{-| __C declaration:__ @heif_image_scale_image@
+
+    __defined at:__ @libheif\/heif_image.h 287:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_scale_image ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @input@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @output@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> PtrConst.PtrConst Heif_scaling_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_image_scale_image =
+  \input0 ->
+    \output1 ->
+      \width2 ->
+        \height3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_356bd5ab0a7e162c input0 output1 width2 height3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_to_size_fill_with_zero@
+foreign import ccall safe "hs_bindgen_1f51057f3f3ab220" hs_bindgen_1f51057f3f3ab220_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_to_size_fill_with_zero@
+hs_bindgen_1f51057f3f3ab220 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_1f51057f3f3ab220 =
+  BG.fromFFIType hs_bindgen_1f51057f3f3ab220_base
+
+{-| __C declaration:__ @heif_image_extend_to_size_fill_with_zero@
+
+    __defined at:__ @libheif\/heif_image.h 295:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_to_size_fill_with_zero ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @height@
+  -> IO Heif_error
+heif_image_extend_to_size_fill_with_zero =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_1f51057f3f3ab220 image0 width1 height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_decoding_warnings@
+foreign import ccall safe "hs_bindgen_0f73243f659b5839" hs_bindgen_0f73243f659b5839_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_decoding_warnings@
+hs_bindgen_0f73243f659b5839 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_0f73243f659b5839 =
+  BG.fromFFIType hs_bindgen_0f73243f659b5839_base
+
+{-| __C declaration:__ @heif_image_get_decoding_warnings@
+
+    __defined at:__ @libheif\/heif_image.h 305:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_decoding_warnings ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @first_warning_idx@
+  -> BG.Ptr Heif_error
+     -- ^ __C declaration:__ @out_warnings@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_output_buffer_entries@
+  -> IO BG.CInt
+heif_image_get_decoding_warnings =
+  hs_bindgen_0f73243f659b5839
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_decoding_warning@
+foreign import ccall safe "hs_bindgen_ff4db425910d967f" hs_bindgen_ff4db425910d967f_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_decoding_warning@
+hs_bindgen_ff4db425910d967f ::
+     BG.Ptr Heif_image
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ff4db425910d967f =
+  BG.fromFFIType hs_bindgen_ff4db425910d967f_base
+
+{-| __C declaration:__ @heif_image_add_decoding_warning@
+
+    __defined at:__ @libheif\/heif_image.h 312:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_decoding_warning ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_error
+     -- ^ __C declaration:__ @err@
+  -> IO ()
+heif_image_add_decoding_warning =
+  \image0 ->
+    \err1 ->
+      BG.with err1 (\err2 ->
+                      hs_bindgen_ff4db425910d967f image0 err2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_release@
+foreign import ccall safe "hs_bindgen_40ef7aca6e2177d1" hs_bindgen_40ef7aca6e2177d1_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_release@
+hs_bindgen_40ef7aca6e2177d1 ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+hs_bindgen_40ef7aca6e2177d1 =
+  BG.fromFFIType hs_bindgen_40ef7aca6e2177d1_base
+
+{-| __C declaration:__ @heif_image_release@
+
+    __defined at:__ @libheif\/heif_image.h 317:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_release ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+heif_image_release = hs_bindgen_40ef7aca6e2177d1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_c59879f567050fcc" hs_bindgen_c59879f567050fcc_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_pixel_aspect_ratio@
+hs_bindgen_c59879f567050fcc ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_c59879f567050fcc =
+  BG.fromFFIType hs_bindgen_c59879f567050fcc_base
+
+{-| __C declaration:__ @heif_image_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 320:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_get_pixel_aspect_ratio =
+  hs_bindgen_c59879f567050fcc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_382fdd46c680e29d" hs_bindgen_382fdd46c680e29d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_pixel_aspect_ratio@
+hs_bindgen_382fdd46c680e29d ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_382fdd46c680e29d =
+  BG.fromFFIType hs_bindgen_382fdd46c680e29d_base
+
+{-| __C declaration:__ @heif_image_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 323:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_set_pixel_aspect_ratio =
+  hs_bindgen_382fdd46c680e29d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_d5e4426964217a2b" hs_bindgen_d5e4426964217a2b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_pixel_aspect_ratio@
+hs_bindgen_d5e4426964217a2b ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_d5e4426964217a2b =
+  BG.fromFFIType hs_bindgen_d5e4426964217a2b_base
+
+{-| __C declaration:__ @heif_image_handle_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 326:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_handle_set_pixel_aspect_ratio =
+  hs_bindgen_d5e4426964217a2b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_create@
+foreign import ccall safe "hs_bindgen_048c16976f9d00a6" hs_bindgen_048c16976f9d00a6_base ::
+     BG.Int32
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_create@
+hs_bindgen_048c16976f9d00a6 ::
+     BG.CInt
+  -> BG.CInt
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_048c16976f9d00a6 =
+  BG.fromFFIType hs_bindgen_048c16976f9d00a6_base
+
+{-| __C declaration:__ @heif_image_create@
+
+    __defined at:__ @libheif\/heif_image.h 344:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_create ::
+     BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_create =
+  \width0 ->
+    \height1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \out_image4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_048c16976f9d00a6 width0 height1 colorspace2 chroma3 out_image4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane@
+foreign import ccall safe "hs_bindgen_39098c398bab3049" hs_bindgen_39098c398bab3049_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane@
+hs_bindgen_39098c398bab3049 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_39098c398bab3049 =
+  BG.fromFFIType hs_bindgen_39098c398bab3049_base
+
+{-| __C declaration:__ @heif_image_add_plane@
+
+    __defined at:__ @libheif\/heif_image.h 378:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> IO Heif_error
+heif_image_add_plane =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_39098c398bab3049 image0 channel1 width2 height3 bit_depth4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane_safe@
+foreign import ccall safe "hs_bindgen_b43a95f5d0d97321" hs_bindgen_b43a95f5d0d97321_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane_safe@
+hs_bindgen_b43a95f5d0d97321 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b43a95f5d0d97321 =
+  BG.fromFFIType hs_bindgen_b43a95f5d0d97321_base
+
+{-| __C declaration:__ @heif_image_add_plane_safe@
+
+    __defined at:__ @libheif\/heif_image.h 387:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane_safe ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> IO Heif_error
+heif_image_add_plane_safe =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            \limits5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_b43a95f5d0d97321 image0 channel1 width2 height3 bit_depth4 limits5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_premultiplied_alpha@
+foreign import ccall safe "hs_bindgen_66befebbb3cfe08f" hs_bindgen_66befebbb3cfe08f_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_premultiplied_alpha@
+hs_bindgen_66befebbb3cfe08f ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_66befebbb3cfe08f =
+  BG.fromFFIType hs_bindgen_66befebbb3cfe08f_base
+
+{-| __C declaration:__ @heif_image_set_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 394:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @is_premultiplied_alpha@
+  -> IO ()
+heif_image_set_premultiplied_alpha =
+  hs_bindgen_66befebbb3cfe08f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_is_premultiplied_alpha@
+foreign import ccall safe "hs_bindgen_7f39c909f50251bd" hs_bindgen_7f39c909f50251bd_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_is_premultiplied_alpha@
+hs_bindgen_7f39c909f50251bd ::
+     BG.Ptr Heif_image
+  -> IO BG.CInt
+hs_bindgen_7f39c909f50251bd =
+  BG.fromFFIType hs_bindgen_7f39c909f50251bd_base
+
+{-| __C declaration:__ @heif_image_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_is_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO BG.CInt
+heif_image_is_premultiplied_alpha =
+  hs_bindgen_7f39c909f50251bd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_padding_to_size@
+foreign import ccall safe "hs_bindgen_0a9de4fb42d7aef8" hs_bindgen_0a9de4fb42d7aef8_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_padding_to_size@
+hs_bindgen_0a9de4fb42d7aef8 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_0a9de4fb42d7aef8 =
+  BG.fromFFIType hs_bindgen_0a9de4fb42d7aef8_base
+
+{-| __C declaration:__ @heif_image_extend_padding_to_size@
+
+    __defined at:__ @libheif\/heif_image.h 406:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_padding_to_size ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_height@
+  -> IO Heif_error
+heif_image_extend_padding_to_size =
+  \image0 ->
+    \min_physical_width1 ->
+      \min_physical_height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_0a9de4fb42d7aef8 image0 min_physical_width1 min_physical_height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_set_defaults@
+foreign import ccall safe "hs_bindgen_635c898d9653c258" hs_bindgen_635c898d9653c258_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_set_defaults@
+hs_bindgen_635c898d9653c258 ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+hs_bindgen_635c898d9653c258 =
+  BG.fromFFIType hs_bindgen_635c898d9653c258_base
+
+{-| __C declaration:__ @heif_color_conversion_options_set_defaults@
+
+    __defined at:__ @libheif\/heif_color.h 99:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_set_defaults ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+heif_color_conversion_options_set_defaults =
+  hs_bindgen_635c898d9653c258
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_alloc@
+foreign import ccall safe "hs_bindgen_f9767fc846991850" hs_bindgen_f9767fc846991850_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_alloc@
+hs_bindgen_f9767fc846991850 :: IO (BG.Ptr Heif_color_conversion_options_ext)
+hs_bindgen_f9767fc846991850 =
+  BG.fromFFIType hs_bindgen_f9767fc846991850_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 102:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_alloc :: IO (BG.Ptr Heif_color_conversion_options_ext)
+heif_color_conversion_options_ext_alloc =
+  hs_bindgen_f9767fc846991850
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_copy@
+foreign import ccall safe "hs_bindgen_e89e40cb42b3dbf6" hs_bindgen_e89e40cb42b3dbf6_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_copy@
+hs_bindgen_e89e40cb42b3dbf6 ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_e89e40cb42b3dbf6 =
+  BG.fromFFIType hs_bindgen_e89e40cb42b3dbf6_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_copy@
+
+    __defined at:__ @libheif\/heif_color.h 105:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_copy ::
+     BG.Ptr Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_color_conversion_options_ext_copy =
+  hs_bindgen_e89e40cb42b3dbf6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_free@
+foreign import ccall safe "hs_bindgen_015954e3f538afdf" hs_bindgen_015954e3f538afdf_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_free@
+hs_bindgen_015954e3f538afdf ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_015954e3f538afdf =
+  BG.fromFFIType hs_bindgen_015954e3f538afdf_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_free@
+
+    __defined at:__ @libheif\/heif_color.h 109:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_free ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+heif_color_conversion_options_ext_free =
+  hs_bindgen_015954e3f538afdf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_color_profile_type@
+foreign import ccall safe "hs_bindgen_c2e2151a49511790" hs_bindgen_c2e2151a49511790_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_color_profile_type@
+hs_bindgen_c2e2151a49511790 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_color_profile_type
+hs_bindgen_c2e2151a49511790 =
+  BG.fromFFIType hs_bindgen_c2e2151a49511790_base
+
+{-| __C declaration:__ @heif_image_handle_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 129:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_color_profile_type
+heif_image_handle_get_color_profile_type =
+  hs_bindgen_c2e2151a49511790
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile_size@
+foreign import ccall safe "hs_bindgen_f3b5e52cf4c98431" hs_bindgen_f3b5e52cf4c98431_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word64
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile_size@
+hs_bindgen_f3b5e52cf4c98431 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_f3b5e52cf4c98431 =
+  BG.fromFFIType hs_bindgen_f3b5e52cf4c98431_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 132:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_raw_color_profile_size =
+  hs_bindgen_f3b5e52cf4c98431
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile@
+foreign import ccall safe "hs_bindgen_70185cdfc94f6180" hs_bindgen_70185cdfc94f6180_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile@
+hs_bindgen_70185cdfc94f6180 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_70185cdfc94f6180 =
+  BG.fromFFIType hs_bindgen_70185cdfc94f6180_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 136:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_raw_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_70185cdfc94f6180 handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_color_primaries@
+foreign import ccall safe "hs_bindgen_fd1b0dc517553ea4" hs_bindgen_fd1b0dc517553ea4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_color_primaries@
+hs_bindgen_fd1b0dc517553ea4 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_fd1b0dc517553ea4 =
+  BG.fromFFIType hs_bindgen_fd1b0dc517553ea4_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 215:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_color_primaries ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @cp@
+  -> IO Heif_error
+heif_nclx_color_profile_set_color_primaries =
+  \nclx0 ->
+    \cp1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_fd1b0dc517553ea4 nclx0 cp1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_transfer_characteristics@
+foreign import ccall safe "hs_bindgen_4cd780e465edf8f1" hs_bindgen_4cd780e465edf8f1_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_transfer_characteristics@
+hs_bindgen_4cd780e465edf8f1 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4cd780e465edf8f1 =
+  BG.fromFFIType hs_bindgen_4cd780e465edf8f1_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_transfer_characteristics ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @transfer_characteristics@
+  -> IO Heif_error
+heif_nclx_color_profile_set_transfer_characteristics =
+  \nclx0 ->
+    \transfer_characteristics1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4cd780e465edf8f1 nclx0 transfer_characteristics1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_matrix_coefficients@
+foreign import ccall safe "hs_bindgen_4c2b93b4d0d31039" hs_bindgen_4c2b93b4d0d31039_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_matrix_coefficients@
+hs_bindgen_4c2b93b4d0d31039 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4c2b93b4d0d31039 =
+  BG.fromFFIType hs_bindgen_4c2b93b4d0d31039_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 221:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_matrix_coefficients ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @matrix_coefficients@
+  -> IO Heif_error
+heif_nclx_color_profile_set_matrix_coefficients =
+  \nclx0 ->
+    \matrix_coefficients1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4c2b93b4d0d31039 nclx0 matrix_coefficients1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nclx_color_profile@
+foreign import ccall safe "hs_bindgen_4878761a3eacdfd6" hs_bindgen_4878761a3eacdfd6_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nclx_color_profile@
+hs_bindgen_4878761a3eacdfd6 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4878761a3eacdfd6 =
+  BG.fromFFIType hs_bindgen_4878761a3eacdfd6_base
+
+{-| __C declaration:__ @heif_image_handle_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 227:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_nclx_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4878761a3eacdfd6 handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_alloc@
+foreign import ccall safe "hs_bindgen_252b9611425ba79d" hs_bindgen_252b9611425ba79d_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_alloc@
+hs_bindgen_252b9611425ba79d :: IO (BG.Ptr Heif_color_profile_nclx)
+hs_bindgen_252b9611425ba79d =
+  BG.fromFFIType hs_bindgen_252b9611425ba79d_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 234:26@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_alloc :: IO (BG.Ptr Heif_color_profile_nclx)
+heif_nclx_color_profile_alloc =
+  hs_bindgen_252b9611425ba79d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_free@
+foreign import ccall safe "hs_bindgen_baafd267dd3a7eda" hs_bindgen_baafd267dd3a7eda_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_free@
+hs_bindgen_baafd267dd3a7eda ::
+     BG.Ptr Heif_color_profile_nclx
+  -> IO ()
+hs_bindgen_baafd267dd3a7eda =
+  BG.fromFFIType hs_bindgen_baafd267dd3a7eda_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_free@
+
+    __defined at:__ @libheif\/heif_color.h 237:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_free ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx_profile@
+  -> IO ()
+heif_nclx_color_profile_free =
+  hs_bindgen_baafd267dd3a7eda
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_color_profile_type@
+foreign import ccall safe "hs_bindgen_451f04ca40155e84" hs_bindgen_451f04ca40155e84_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_color_profile_type@
+hs_bindgen_451f04ca40155e84 ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_color_profile_type
+hs_bindgen_451f04ca40155e84 =
+  BG.fromFFIType hs_bindgen_451f04ca40155e84_base
+
+{-| __C declaration:__ @heif_image_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 243:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_color_profile_type
+heif_image_get_color_profile_type =
+  hs_bindgen_451f04ca40155e84
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile_size@
+foreign import ccall safe "hs_bindgen_6a45102328f17806" hs_bindgen_6a45102328f17806_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word64
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile_size@
+hs_bindgen_6a45102328f17806 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_6a45102328f17806 =
+  BG.fromFFIType hs_bindgen_6a45102328f17806_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 247:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_get_raw_color_profile_size =
+  hs_bindgen_6a45102328f17806
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile@
+foreign import ccall safe "hs_bindgen_ea1a521369743d6e" hs_bindgen_ea1a521369743d6e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile@
+hs_bindgen_ea1a521369743d6e ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ea1a521369743d6e =
+  BG.fromFFIType hs_bindgen_ea1a521369743d6e_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_raw_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_ea1a521369743d6e image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nclx_color_profile@
+foreign import ccall safe "hs_bindgen_4a81755ffaafdd5e" hs_bindgen_4a81755ffaafdd5e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nclx_color_profile@
+hs_bindgen_4a81755ffaafdd5e ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4a81755ffaafdd5e =
+  BG.fromFFIType hs_bindgen_4a81755ffaafdd5e_base
+
+{-| __C declaration:__ @heif_image_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_nclx_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4a81755ffaafdd5e image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_raw_color_profile@
+foreign import ccall safe "hs_bindgen_8b84f0de01d3fc38" hs_bindgen_8b84f0de01d3fc38_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word64
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_raw_color_profile@
+hs_bindgen_8b84f0de01d3fc38 ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8b84f0de01d3fc38 =
+  BG.fromFFIType hs_bindgen_8b84f0de01d3fc38_base
+
+{-| __C declaration:__ @heif_image_set_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 262:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_raw_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @profile_type_fourcc_string@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @profile_data@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @profile_size@
+  -> IO Heif_error
+heif_image_set_raw_color_profile =
+  \image0 ->
+    \profile_type_fourcc_string1 ->
+      \profile_data2 ->
+        \profile_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_8b84f0de01d3fc38 image0 profile_type_fourcc_string1 profile_data2 profile_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nclx_color_profile@
+foreign import ccall safe "hs_bindgen_290eaac614fe5c21" hs_bindgen_290eaac614fe5c21_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nclx_color_profile@
+hs_bindgen_290eaac614fe5c21 ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_290eaac614fe5c21 =
+  BG.fromFFIType hs_bindgen_290eaac614fe5c21_base
+
+{-| __C declaration:__ @heif_image_set_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 268:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nclx_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+     -- ^ __C declaration:__ @color_profile@
+  -> IO Heif_error
+heif_image_set_nclx_color_profile =
+  \image0 ->
+    \color_profile1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_290eaac614fe5c21 image0 color_profile1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_content_light_level@
+foreign import ccall safe "hs_bindgen_d9106e024a66d6c7" hs_bindgen_d9106e024a66d6c7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_content_light_level@
+hs_bindgen_d9106e024a66d6c7 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_d9106e024a66d6c7 =
+  BG.fromFFIType hs_bindgen_d9106e024a66d6c7_base
+
+{-| __C declaration:__ @heif_image_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 301:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_content_light_level =
+  hs_bindgen_d9106e024a66d6c7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_content_light_level@
+foreign import ccall safe "hs_bindgen_004c713c5bed589a" hs_bindgen_004c713c5bed589a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_content_light_level@
+hs_bindgen_004c713c5bed589a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_004c713c5bed589a =
+  BG.fromFFIType hs_bindgen_004c713c5bed589a_base
+
+{-| __C declaration:__ @heif_image_handle_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 304:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_content_light_level =
+  hs_bindgen_004c713c5bed589a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_content_light_level@
+foreign import ccall safe "hs_bindgen_224bdf9ae9bc86e4" hs_bindgen_224bdf9ae9bc86e4_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_content_light_level@
+hs_bindgen_224bdf9ae9bc86e4 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+  -> IO ()
+hs_bindgen_224bdf9ae9bc86e4 =
+  BG.fromFFIType hs_bindgen_224bdf9ae9bc86e4_base
+
+{-| __C declaration:__ @heif_image_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 308:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_content_light_level =
+  hs_bindgen_224bdf9ae9bc86e4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_content_light_level@
+foreign import ccall safe "hs_bindgen_0573bf5680dead95" hs_bindgen_0573bf5680dead95_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_content_light_level@
+hs_bindgen_0573bf5680dead95 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+  -> IO BG.CInt
+hs_bindgen_0573bf5680dead95 =
+  BG.fromFFIType hs_bindgen_0573bf5680dead95_base
+
+{-| __C declaration:__ @heif_image_handle_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 312:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_content_light_level =
+  hs_bindgen_0573bf5680dead95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_content_light_level@
+foreign import ccall safe "hs_bindgen_61eb469d896a68ed" hs_bindgen_61eb469d896a68ed_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_content_light_level@
+hs_bindgen_61eb469d896a68ed ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_61eb469d896a68ed =
+  BG.fromFFIType hs_bindgen_61eb469d896a68ed_base
+
+{-| __C declaration:__ @heif_image_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 315:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_content_light_level =
+  hs_bindgen_61eb469d896a68ed
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_content_light_level@
+foreign import ccall safe "hs_bindgen_b94eaa9d4f03b208" hs_bindgen_b94eaa9d4f03b208_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_content_light_level@
+hs_bindgen_b94eaa9d4f03b208 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_b94eaa9d4f03b208 =
+  BG.fromFFIType hs_bindgen_b94eaa9d4f03b208_base
+
+{-| __C declaration:__ @heif_image_handle_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 318:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_content_light_level =
+  hs_bindgen_b94eaa9d4f03b208
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_65fda22aec99af16" hs_bindgen_65fda22aec99af16_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_mastering_display_colour_volume@
+hs_bindgen_65fda22aec99af16 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_65fda22aec99af16 =
+  BG.fromFFIType hs_bindgen_65fda22aec99af16_base
+
+{-| __C declaration:__ @heif_image_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_mastering_display_colour_volume =
+  hs_bindgen_65fda22aec99af16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_ba412b5c11d4ce2c" hs_bindgen_ba412b5c11d4ce2c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_mastering_display_colour_volume@
+hs_bindgen_ba412b5c11d4ce2c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_ba412b5c11d4ce2c =
+  BG.fromFFIType hs_bindgen_ba412b5c11d4ce2c_base
+
+{-| __C declaration:__ @heif_image_handle_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_mastering_display_colour_volume =
+  hs_bindgen_ba412b5c11d4ce2c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_40e6f048c71c0839" hs_bindgen_40e6f048c71c0839_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_mastering_display_colour_volume@
+hs_bindgen_40e6f048c71c0839 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_40e6f048c71c0839 =
+  BG.fromFFIType hs_bindgen_40e6f048c71c0839_base
+
+{-| __C declaration:__ @heif_image_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 404:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_mastering_display_colour_volume =
+  hs_bindgen_40e6f048c71c0839
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_f5f710dd952f38b2" hs_bindgen_f5f710dd952f38b2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_mastering_display_colour_volume@
+hs_bindgen_f5f710dd952f38b2 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO BG.CInt
+hs_bindgen_f5f710dd952f38b2 =
+  BG.fromFFIType hs_bindgen_f5f710dd952f38b2_base
+
+{-| __C declaration:__ @heif_image_handle_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 408:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_mastering_display_colour_volume =
+  hs_bindgen_f5f710dd952f38b2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_7c7394e5ab9a2522" hs_bindgen_7c7394e5ab9a2522_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_mastering_display_colour_volume@
+hs_bindgen_7c7394e5ab9a2522 ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_7c7394e5ab9a2522 =
+  BG.fromFFIType hs_bindgen_7c7394e5ab9a2522_base
+
+{-| __C declaration:__ @heif_image_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 411:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_mastering_display_colour_volume =
+  hs_bindgen_7c7394e5ab9a2522
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_e71af6fb39f6c6a7" hs_bindgen_e71af6fb39f6c6a7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_mastering_display_colour_volume@
+hs_bindgen_e71af6fb39f6c6a7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_e71af6fb39f6c6a7 =
+  BG.fromFFIType hs_bindgen_e71af6fb39f6c6a7_base
+
+{-| __C declaration:__ @heif_image_handle_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 414:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_mastering_display_colour_volume =
+  hs_bindgen_e71af6fb39f6c6a7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_5aefb28b52c74a49" hs_bindgen_5aefb28b52c74a49_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_ambient_viewing_environment@
+hs_bindgen_5aefb28b52c74a49 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_5aefb28b52c74a49 =
+  BG.fromFFIType hs_bindgen_5aefb28b52c74a49_base
+
+{-| __C declaration:__ @heif_image_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 420:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_ambient_viewing_environment =
+  hs_bindgen_5aefb28b52c74a49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_fb72753dff464187" hs_bindgen_fb72753dff464187_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_ambient_viewing_environment@
+hs_bindgen_fb72753dff464187 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_fb72753dff464187 =
+  BG.fromFFIType hs_bindgen_fb72753dff464187_base
+
+{-| __C declaration:__ @heif_image_handle_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 423:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_ambient_viewing_environment =
+  hs_bindgen_fb72753dff464187
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_e4865cd1be357ee7" hs_bindgen_e4865cd1be357ee7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_ambient_viewing_environment@
+hs_bindgen_e4865cd1be357ee7 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_e4865cd1be357ee7 =
+  BG.fromFFIType hs_bindgen_e4865cd1be357ee7_base
+
+{-| __C declaration:__ @heif_image_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 427:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_get_ambient_viewing_environment =
+  hs_bindgen_e4865cd1be357ee7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_9975a4f39370fa33" hs_bindgen_9975a4f39370fa33_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ambient_viewing_environment@
+hs_bindgen_9975a4f39370fa33 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_9975a4f39370fa33 =
+  BG.fromFFIType hs_bindgen_9975a4f39370fa33_base
+
+{-| __C declaration:__ @heif_image_handle_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 431:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_ambient_viewing_environment =
+  hs_bindgen_9975a4f39370fa33
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_be117bf48bd413ce" hs_bindgen_be117bf48bd413ce_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_ambient_viewing_environment@
+hs_bindgen_be117bf48bd413ce ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_be117bf48bd413ce =
+  BG.fromFFIType hs_bindgen_be117bf48bd413ce_base
+
+{-| __C declaration:__ @heif_image_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 434:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_ambient_viewing_environment =
+  hs_bindgen_be117bf48bd413ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_b6a2b9efd97046de" hs_bindgen_b6a2b9efd97046de_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_ambient_viewing_environment@
+hs_bindgen_b6a2b9efd97046de ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_b6a2b9efd97046de =
+  BG.fromFFIType hs_bindgen_b6a2b9efd97046de_base
+
+{-| __C declaration:__ @heif_image_handle_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 437:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_ambient_viewing_environment =
+  hs_bindgen_b6a2b9efd97046de
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_0392b2a2a62a17b9" hs_bindgen_0392b2a2a62a17b9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_nominal_diffuse_white_luminance@
+hs_bindgen_0392b2a2a62a17b9 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_0392b2a2a62a17b9 =
+  BG.fromFFIType hs_bindgen_0392b2a2a62a17b9_base
+
+{-| __C declaration:__ @heif_image_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 450:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_nominal_diffuse_white_luminance =
+  hs_bindgen_0392b2a2a62a17b9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_2cc0bd424cc13ef0" hs_bindgen_2cc0bd424cc13ef0_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nominal_diffuse_white_luminance@
+hs_bindgen_2cc0bd424cc13ef0 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_2cc0bd424cc13ef0 =
+  BG.fromFFIType hs_bindgen_2cc0bd424cc13ef0_base
+
+{-| __C declaration:__ @heif_image_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 453:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_nominal_diffuse_white_luminance =
+  hs_bindgen_2cc0bd424cc13ef0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_d822f8181b9f461f" hs_bindgen_d822f8181b9f461f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nominal_diffuse_white_luminance@
+hs_bindgen_d822f8181b9f461f ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_d822f8181b9f461f =
+  BG.fromFFIType hs_bindgen_d822f8181b9f461f_base
+
+{-| __C declaration:__ @heif_image_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 456:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_set_nominal_diffuse_white_luminance =
+  hs_bindgen_d822f8181b9f461f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_75f707df4737c64c" hs_bindgen_75f707df4737c64c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_nominal_diffuse_white_luminance@
+hs_bindgen_75f707df4737c64c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_75f707df4737c64c =
+  BG.fromFFIType hs_bindgen_75f707df4737c64c_base
+
+{-| __C declaration:__ @heif_image_handle_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 459:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_nominal_diffuse_white_luminance =
+  hs_bindgen_75f707df4737c64c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_88b825fccd56f83a" hs_bindgen_88b825fccd56f83a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nominal_diffuse_white_luminance@
+hs_bindgen_88b825fccd56f83a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_88b825fccd56f83a =
+  BG.fromFFIType hs_bindgen_88b825fccd56f83a_base
+
+{-| __C declaration:__ @heif_image_handle_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 462:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_nominal_diffuse_white_luminance =
+  hs_bindgen_88b825fccd56f83a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_d54b499790eb4475" hs_bindgen_d54b499790eb4475_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_nominal_diffuse_white_luminance@
+hs_bindgen_d54b499790eb4475 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_d54b499790eb4475 =
+  BG.fromFFIType hs_bindgen_d54b499790eb4475_base
+
+{-| __C declaration:__ @heif_image_handle_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 465:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_handle_set_nominal_diffuse_white_luminance =
+  hs_bindgen_d54b499790eb4475
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_mastering_display_colour_volume_decode@
+foreign import ccall safe "hs_bindgen_7af8bd15dda9d8da" hs_bindgen_7af8bd15dda9d8da_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_mastering_display_colour_volume_decode@
+hs_bindgen_7af8bd15dda9d8da ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7af8bd15dda9d8da =
+  BG.fromFFIType hs_bindgen_7af8bd15dda9d8da_base
+
+{-| __C declaration:__ @heif_mastering_display_colour_volume_decode@
+
+    __defined at:__ @libheif\/heif_color.h 472:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_mastering_display_colour_volume_decode ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO Heif_error
+heif_mastering_display_colour_volume_decode =
+  \in'0 ->
+    \out1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_7af8bd15dda9d8da in'0 out1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_main_brand@
+foreign import ccall safe "hs_bindgen_eb070136a1fc7d04" hs_bindgen_eb070136a1fc7d04_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_main_brand@
+hs_bindgen_eb070136a1fc7d04 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_eb070136a1fc7d04 =
+  BG.fromFFIType hs_bindgen_eb070136a1fc7d04_base
+
+{-| __C declaration:__ @heif_read_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 269:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_main_brand = hs_bindgen_eb070136a1fc7d04
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_minor_version_brand@
+foreign import ccall safe "hs_bindgen_99628e0c9a83fd4a" hs_bindgen_99628e0c9a83fd4a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_minor_version_brand@
+hs_bindgen_99628e0c9a83fd4a ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_99628e0c9a83fd4a =
+  BG.fromFFIType hs_bindgen_99628e0c9a83fd4a_base
+
+{-| __C declaration:__ @heif_read_minor_version_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 273:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_minor_version_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_minor_version_brand =
+  hs_bindgen_99628e0c9a83fd4a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_fourcc_to_brand@
+foreign import ccall safe "hs_bindgen_8ddb7de5c3530060" hs_bindgen_8ddb7de5c3530060_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_fourcc_to_brand@
+hs_bindgen_8ddb7de5c3530060 ::
+     PtrConst.PtrConst BG.CChar
+  -> IO Heif_brand2
+hs_bindgen_8ddb7de5c3530060 =
+  BG.fromFFIType hs_bindgen_8ddb7de5c3530060_base
+
+{-| __C declaration:__ @heif_fourcc_to_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 277:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_fourcc_to_brand ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO Heif_brand2
+heif_fourcc_to_brand = hs_bindgen_8ddb7de5c3530060
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_brand_to_fourcc@
+foreign import ccall safe "hs_bindgen_9ccdf2cb99660b08" hs_bindgen_9ccdf2cb99660b08_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_brand_to_fourcc@
+hs_bindgen_9ccdf2cb99660b08 ::
+     Heif_brand2
+  -> BG.Ptr BG.CChar
+  -> IO ()
+hs_bindgen_9ccdf2cb99660b08 =
+  BG.fromFFIType hs_bindgen_9ccdf2cb99660b08_base
+
+{-| __C declaration:__ @heif_brand_to_fourcc@
+
+    __defined at:__ @libheif\/heif_brands.h 281:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_brand_to_fourcc ::
+     Heif_brand2
+     -- ^ __C declaration:__ @brand@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @out_fourcc@
+  -> IO ()
+heif_brand_to_fourcc = hs_bindgen_9ccdf2cb99660b08
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_brand@
+foreign import ccall safe "hs_bindgen_80dc19fc26906086" hs_bindgen_80dc19fc26906086_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_brand@
+hs_bindgen_80dc19fc26906086 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_80dc19fc26906086 =
+  BG.fromFFIType hs_bindgen_80dc19fc26906086_base
+
+{-| __C declaration:__ @heif_has_compatible_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 289:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO BG.CInt
+heif_has_compatible_brand =
+  hs_bindgen_80dc19fc26906086
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_list_compatible_brands@
+foreign import ccall safe "hs_bindgen_97aa636c233d899b" hs_bindgen_97aa636c233d899b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_list_compatible_brands@
+hs_bindgen_97aa636c233d899b ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_97aa636c233d899b =
+  BG.fromFFIType hs_bindgen_97aa636c233d899b_base
+
+{-| __C declaration:__ @heif_list_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_list_compatible_brands ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+     -- ^ __C declaration:__ @out_brands@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_size@
+  -> IO Heif_error
+heif_list_compatible_brands =
+  \data'0 ->
+    \len1 ->
+      \out_brands2 ->
+        \out_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_97aa636c233d899b data'0 len1 out_brands2 out_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_list_of_compatible_brands@
+foreign import ccall safe "hs_bindgen_9bb6fcadffe04582" hs_bindgen_9bb6fcadffe04582_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_list_of_compatible_brands@
+hs_bindgen_9bb6fcadffe04582 ::
+     BG.Ptr Heif_brand2
+  -> IO ()
+hs_bindgen_9bb6fcadffe04582 =
+  BG.fromFFIType hs_bindgen_9bb6fcadffe04582_base
+
+{-| __C declaration:__ @heif_free_list_of_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 297:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_list_of_compatible_brands ::
+     BG.Ptr Heif_brand2
+     -- ^ __C declaration:__ @brands_list@
+  -> IO ()
+heif_free_list_of_compatible_brands =
+  hs_bindgen_9bb6fcadffe04582
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_file_mime_type@
+foreign import ccall safe "hs_bindgen_db3e04ae1bcbe4c0" hs_bindgen_db3e04ae1bcbe4c0_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_file_mime_type@
+hs_bindgen_db3e04ae1bcbe4c0 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_db3e04ae1bcbe4c0 =
+  BG.fromFFIType hs_bindgen_db3e04ae1bcbe4c0_base
+
+{-| __C declaration:__ @heif_get_file_mime_type@
+
+    __defined at:__ @libheif\/heif_brands.h 318:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_file_mime_type ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_get_file_mime_type = hs_bindgen_db3e04ae1bcbe4c0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_filetype@
+foreign import ccall safe "hs_bindgen_ab7eedc4f1bb8c0b" hs_bindgen_ab7eedc4f1bb8c0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_filetype@
+hs_bindgen_ab7eedc4f1bb8c0b ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_filetype_result
+hs_bindgen_ab7eedc4f1bb8c0b =
+  BG.fromFFIType hs_bindgen_ab7eedc4f1bb8c0b_base
+
+{-| __C declaration:__ @heif_check_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 333:27@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_filetype_result
+heif_check_filetype = hs_bindgen_ab7eedc4f1bb8c0b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_filetype@
+foreign import ccall safe "hs_bindgen_8913d7bc32d127f4" hs_bindgen_8913d7bc32d127f4_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_filetype@
+hs_bindgen_8913d7bc32d127f4 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8913d7bc32d127f4 =
+  BG.fromFFIType hs_bindgen_8913d7bc32d127f4_base
+
+{-| __C declaration:__ @heif_has_compatible_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 345:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_error
+heif_has_compatible_filetype =
+  \data'0 ->
+    \len1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8913d7bc32d127f4 data'0 len1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_jpeg_filetype@
+foreign import ccall safe "hs_bindgen_d83270b51d72cc95" hs_bindgen_d83270b51d72cc95_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_jpeg_filetype@
+hs_bindgen_d83270b51d72cc95 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_d83270b51d72cc95 =
+  BG.fromFFIType hs_bindgen_d83270b51d72cc95_base
+
+{-| __C declaration:__ @heif_check_jpeg_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 348:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_jpeg_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO BG.CInt
+heif_check_jpeg_filetype =
+  hs_bindgen_d83270b51d72cc95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_main_brand@
+foreign import ccall safe "hs_bindgen_bae440faea94f3ea" hs_bindgen_bae440faea94f3ea_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_main_brand@
+hs_bindgen_bae440faea94f3ea ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand
+hs_bindgen_bae440faea94f3ea =
+  BG.fromFFIType hs_bindgen_bae440faea94f3ea_base
+
+{-| __C declaration:__ @heif_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 379:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand
+heif_main_brand = hs_bindgen_bae440faea94f3ea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_metadata_compression_method_supported@
+foreign import ccall safe "hs_bindgen_77b745f8ec6e141f" hs_bindgen_77b745f8ec6e141f_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_metadata_compression_method_supported@
+hs_bindgen_77b745f8ec6e141f ::
+     Heif_metadata_compression
+  -> IO BG.CInt
+hs_bindgen_77b745f8ec6e141f =
+  BG.fromFFIType hs_bindgen_77b745f8ec6e141f_base
+
+{-| __C declaration:__ @heif_metadata_compression_method_supported@
+
+    __defined at:__ @libheif\/heif_metadata.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_metadata_compression_method_supported ::
+     Heif_metadata_compression
+     -- ^ __C declaration:__ @method@
+  -> IO BG.CInt
+heif_metadata_compression_method_supported =
+  hs_bindgen_77b745f8ec6e141f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_metadata_blocks@
+foreign import ccall safe "hs_bindgen_221fe3032a7fe8dd" hs_bindgen_221fe3032a7fe8dd_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_metadata_blocks@
+hs_bindgen_221fe3032a7fe8dd ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_221fe3032a7fe8dd =
+  BG.fromFFIType hs_bindgen_221fe3032a7fe8dd_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_metadata_blocks@
+
+    __defined at:__ @libheif\/heif_metadata.h 49:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_metadata_blocks ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_metadata_blocks =
+  hs_bindgen_221fe3032a7fe8dd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_metadata_block_IDs@
+foreign import ccall safe "hs_bindgen_0789072dbb9a1da7" hs_bindgen_0789072dbb9a1da7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_metadata_block_IDs@
+hs_bindgen_0789072dbb9a1da7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_0789072dbb9a1da7 =
+  BG.fromFFIType hs_bindgen_0789072dbb9a1da7_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_metadata_block_IDs@
+
+    __defined at:__ @libheif\/heif_metadata.h 55:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_metadata_block_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_metadata_block_IDs =
+  hs_bindgen_0789072dbb9a1da7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_type@
+foreign import ccall safe "hs_bindgen_a597fdc86acc8f1b" hs_bindgen_a597fdc86acc8f1b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_type@
+hs_bindgen_a597fdc86acc8f1b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_a597fdc86acc8f1b =
+  BG.fromFFIType hs_bindgen_a597fdc86acc8f1b_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 64:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_type =
+  hs_bindgen_a597fdc86acc8f1b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_content_type@
+foreign import ccall safe "hs_bindgen_e419666dded9a0a4" hs_bindgen_e419666dded9a0a4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_content_type@
+hs_bindgen_e419666dded9a0a4 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_e419666dded9a0a4 =
+  BG.fromFFIType hs_bindgen_e419666dded9a0a4_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_content_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 70:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_content_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_content_type =
+  hs_bindgen_e419666dded9a0a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_size@
+foreign import ccall safe "hs_bindgen_c5dbe28d404f70c2" hs_bindgen_c5dbe28d404f70c2_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word64
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_size@
+hs_bindgen_c5dbe28d404f70c2 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_c5dbe28d404f70c2 =
+  BG.fromFFIType hs_bindgen_c5dbe28d404f70c2_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_size@
+
+    __defined at:__ @libheif\/heif_metadata.h 75:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_metadata_size =
+  hs_bindgen_c5dbe28d404f70c2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata@
+foreign import ccall safe "hs_bindgen_40f28b061d8968ee" hs_bindgen_40f28b061d8968ee_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata@
+hs_bindgen_40f28b061d8968ee ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_40f28b061d8968ee =
+  BG.fromFFIType hs_bindgen_40f28b061d8968ee_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 83:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_metadata =
+  \handle0 ->
+    \metadata_id1 ->
+      \out_data2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_40f28b061d8968ee handle0 metadata_id1 out_data2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_item_uri_type@
+foreign import ccall safe "hs_bindgen_5add5de233105e0a" hs_bindgen_5add5de233105e0a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_item_uri_type@
+hs_bindgen_5add5de233105e0a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_5add5de233105e0a =
+  BG.fromFFIType hs_bindgen_5add5de233105e0a_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_item_uri_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 89:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_item_uri_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_item_uri_type =
+  hs_bindgen_5add5de233105e0a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_exif_metadata@
+foreign import ccall safe "hs_bindgen_50f28b858c52d38b" hs_bindgen_50f28b858c52d38b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_exif_metadata@
+hs_bindgen_50f28b858c52d38b ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_50f28b858c52d38b =
+  BG.fromFFIType hs_bindgen_50f28b858c52d38b_base
+
+{-| __C declaration:__ @heif_context_add_exif_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 96:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_exif_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_exif_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_50f28b858c52d38b x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata@
+foreign import ccall safe "hs_bindgen_5e1f813465bb1fe7" hs_bindgen_5e1f813465bb1fe7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata@
+hs_bindgen_5e1f813465bb1fe7 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5e1f813465bb1fe7 =
+  BG.fromFFIType hs_bindgen_5e1f813465bb1fe7_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_XMP_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_5e1f813465bb1fe7 x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata2@
+foreign import ccall safe "hs_bindgen_a4bb5759aaf233ed" hs_bindgen_a4bb5759aaf233ed_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata2@
+hs_bindgen_a4bb5759aaf233ed ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> Heif_metadata_compression
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_a4bb5759aaf233ed =
+  BG.fromFFIType hs_bindgen_a4bb5759aaf233ed_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata2@
+
+    __defined at:__ @libheif\/heif_metadata.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> Heif_metadata_compression
+     -- ^ __C declaration:__ @compression@
+  -> IO Heif_error
+heif_context_add_XMP_metadata2 =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \compression4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_a4bb5759aaf233ed x0 image_handle1 data'2 size3 compression4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_metadata@
+foreign import ccall safe "hs_bindgen_a112ed25576e1ead" hs_bindgen_a112ed25576e1ead_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_metadata@
+hs_bindgen_a112ed25576e1ead ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_a112ed25576e1ead =
+  BG.fromFFIType hs_bindgen_a112ed25576e1ead_base
+
+{-| __C declaration:__ @heif_context_add_generic_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_type@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_type@
+  -> IO Heif_error
+heif_context_add_generic_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_type4 ->
+            \content_type5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_a112ed25576e1ead ctx0 image_handle1 data'2 size3 item_type4 content_type5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_uri_metadata@
+foreign import ccall safe "hs_bindgen_4228fc144395b704" hs_bindgen_4228fc144395b704_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_uri_metadata@
+hs_bindgen_4228fc144395b704 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4228fc144395b704 =
+  BG.fromFFIType hs_bindgen_4228fc144395b704_base
+
+{-| __C declaration:__ @heif_context_add_generic_uri_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_uri_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_uri_type@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_item_id@
+  -> IO Heif_error
+heif_context_add_generic_uri_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_uri_type4 ->
+            \out_item_id5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_4228fc144395b704 ctx0 image_handle1 data'2 size3 item_uri_type4 out_item_id5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_depth_image@
+foreign import ccall safe "hs_bindgen_c9fd0d64d2e4ff6c" hs_bindgen_c9fd0d64d2e4ff6c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_depth_image@
+hs_bindgen_c9fd0d64d2e4ff6c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_c9fd0d64d2e4ff6c =
+  BG.fromFFIType hs_bindgen_c9fd0d64d2e4ff6c_base
+
+{-| __C declaration:__ @heif_image_handle_has_depth_image@
+
+    __defined at:__ @libheif\/heif_aux_images.h 39:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_depth_image ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_depth_image =
+  hs_bindgen_c9fd0d64d2e4ff6c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_depth_images@
+foreign import ccall safe "hs_bindgen_3168bad746d58363" hs_bindgen_3168bad746d58363_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_depth_images@
+hs_bindgen_3168bad746d58363 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_3168bad746d58363 =
+  BG.fromFFIType hs_bindgen_3168bad746d58363_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_depth_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_depth_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_depth_images =
+  hs_bindgen_3168bad746d58363
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_depth_image_IDs@
+foreign import ccall safe "hs_bindgen_6ce7ff0f64592f3b" hs_bindgen_6ce7ff0f64592f3b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_depth_image_IDs@
+hs_bindgen_6ce7ff0f64592f3b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_6ce7ff0f64592f3b =
+  BG.fromFFIType hs_bindgen_6ce7ff0f64592f3b_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_depth_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 45:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_depth_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_depth_image_IDs =
+  hs_bindgen_6ce7ff0f64592f3b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_handle@
+foreign import ccall safe "hs_bindgen_bca9f64d9bf4b689" hs_bindgen_bca9f64d9bf4b689_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_handle@
+hs_bindgen_bca9f64d9bf4b689 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_bca9f64d9bf4b689 =
+  BG.fromFFIType hs_bindgen_bca9f64d9bf4b689_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_depth_handle@
+  -> IO Heif_error
+heif_image_handle_get_depth_image_handle =
+  \handle0 ->
+    \depth_image_id1 ->
+      \out_depth_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_bca9f64d9bf4b689 handle0 depth_image_id1 out_depth_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_depth_representation_info_free@
+foreign import ccall safe "hs_bindgen_3e42610ddf090daa" hs_bindgen_3e42610ddf090daa_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_depth_representation_info_free@
+hs_bindgen_3e42610ddf090daa ::
+     PtrConst.PtrConst Heif_depth_representation_info
+  -> IO ()
+hs_bindgen_3e42610ddf090daa =
+  BG.fromFFIType hs_bindgen_3e42610ddf090daa_base
+
+{-| __C declaration:__ @heif_depth_representation_info_free@
+
+    __defined at:__ @libheif\/heif_aux_images.h 87:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_depth_representation_info_free ::
+     PtrConst.PtrConst Heif_depth_representation_info
+     -- ^ __C declaration:__ @info@
+  -> IO ()
+heif_depth_representation_info_free =
+  hs_bindgen_3e42610ddf090daa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_representation_info@
+foreign import ccall safe "hs_bindgen_be71395884eb3a2e" hs_bindgen_be71395884eb3a2e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_representation_info@
+hs_bindgen_be71395884eb3a2e ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+  -> IO BG.CInt
+hs_bindgen_be71395884eb3a2e =
+  BG.fromFFIType hs_bindgen_be71395884eb3a2e_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 95:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_representation_info ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_depth_image_representation_info =
+  hs_bindgen_be71395884eb3a2e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_thumbnails@
+foreign import ccall safe "hs_bindgen_789c72581f93b4f7" hs_bindgen_789c72581f93b4f7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_thumbnails@
+hs_bindgen_789c72581f93b4f7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_789c72581f93b4f7 =
+  BG.fromFFIType hs_bindgen_789c72581f93b4f7_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_thumbnails@
+
+    __defined at:__ @libheif\/heif_aux_images.h 105:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_thumbnails ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_thumbnails =
+  hs_bindgen_789c72581f93b4f7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_thumbnail_IDs@
+foreign import ccall safe "hs_bindgen_3f158a04db84b93c" hs_bindgen_3f158a04db84b93c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_thumbnail_IDs@
+hs_bindgen_3f158a04db84b93c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_3f158a04db84b93c =
+  BG.fromFFIType hs_bindgen_3f158a04db84b93c_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_thumbnail_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 108:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_thumbnail_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_thumbnail_IDs =
+  hs_bindgen_3f158a04db84b93c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_thumbnail@
+foreign import ccall safe "hs_bindgen_74fcac5da0f6fe3d" hs_bindgen_74fcac5da0f6fe3d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_thumbnail@
+hs_bindgen_74fcac5da0f6fe3d ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_74fcac5da0f6fe3d =
+  BG.fromFFIType hs_bindgen_74fcac5da0f6fe3d_base
+
+{-| __C declaration:__ @heif_image_handle_get_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 113:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_thumbnail ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @thumbnail_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumbnail_handle@
+  -> IO Heif_error
+heif_image_handle_get_thumbnail =
+  \main_image_handle0 ->
+    \thumbnail_id1 ->
+      \out_thumbnail_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_74fcac5da0f6fe3d main_image_handle0 thumbnail_id1 out_thumbnail_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_thumbnail@
+foreign import ccall safe "hs_bindgen_0d7512b56eac000e" hs_bindgen_0d7512b56eac000e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_thumbnail@
+hs_bindgen_0d7512b56eac000e ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_0d7512b56eac000e =
+  BG.fromFFIType hs_bindgen_0d7512b56eac000e_base
+
+{-| __C declaration:__ @heif_context_encode_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image_handle@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bbox_size@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumb_image_handle@
+  -> IO Heif_error
+heif_context_encode_thumbnail =
+  \x0 ->
+    \image1 ->
+      \master_image_handle2 ->
+        \encoder3 ->
+          \options4 ->
+            \bbox_size5 ->
+              \out_thumb_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_0d7512b56eac000e x0 image1 master_image_handle2 encoder3 options4 bbox_size5 out_thumb_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_assign_thumbnail@
+foreign import ccall safe "hs_bindgen_efcd1e0532f3cce0" hs_bindgen_efcd1e0532f3cce0_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_assign_thumbnail@
+hs_bindgen_efcd1e0532f3cce0 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_efcd1e0532f3cce0 =
+  BG.fromFFIType hs_bindgen_efcd1e0532f3cce0_base
+
+{-| __C declaration:__ @heif_context_assign_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 136:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_assign_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @thumbnail_image@
+  -> IO Heif_error
+heif_context_assign_thumbnail =
+  \x0 ->
+    \master_image1 ->
+      \thumbnail_image2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_efcd1e0532f3cce0 x0 master_image1 thumbnail_image2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_auxiliary_images@
+foreign import ccall safe "hs_bindgen_c91e031dfd1a0e78" hs_bindgen_c91e031dfd1a0e78_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_auxiliary_images@
+hs_bindgen_c91e031dfd1a0e78 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_c91e031dfd1a0e78 =
+  BG.fromFFIType hs_bindgen_c91e031dfd1a0e78_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_auxiliary_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_auxiliary_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_auxiliary_images =
+  hs_bindgen_c91e031dfd1a0e78
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+foreign import ccall safe "hs_bindgen_fcf1bde2005bf76f" hs_bindgen_fcf1bde2005bf76f_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+hs_bindgen_fcf1bde2005bf76f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_fcf1bde2005bf76f =
+  BG.fromFFIType hs_bindgen_fcf1bde2005bf76f_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_auxiliary_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 152:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_auxiliary_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_auxiliary_image_IDs =
+  hs_bindgen_fcf1bde2005bf76f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_type@
+foreign import ccall safe "hs_bindgen_7eda525d1bdf7412" hs_bindgen_7eda525d1bdf7412_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_type@
+hs_bindgen_7eda525d1bdf7412 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7eda525d1bdf7412 =
+  BG.fromFFIType hs_bindgen_7eda525d1bdf7412_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 158:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_type =
+  \handle0 ->
+    \out_type1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_7eda525d1bdf7412 handle0 out_type1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release_auxiliary_type@
+foreign import ccall safe "hs_bindgen_7a949d12902feb72" hs_bindgen_7a949d12902feb72_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release_auxiliary_type@
+hs_bindgen_7a949d12902feb72 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_7a949d12902feb72 =
+  BG.fromFFIType hs_bindgen_7a949d12902feb72_base
+
+{-| __C declaration:__ @heif_image_handle_release_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 162:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_release_auxiliary_type =
+  hs_bindgen_7a949d12902feb72
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_image_handle@
+foreign import ccall safe "hs_bindgen_aad627a91e87ac22" hs_bindgen_aad627a91e87ac22_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_image_handle@
+hs_bindgen_aad627a91e87ac22 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_aad627a91e87ac22 =
+  BG.fromFFIType hs_bindgen_aad627a91e87ac22_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @auxiliary_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_auxiliary_handle@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_image_handle =
+  \main_image_handle0 ->
+    \auxiliary_id1 ->
+      \out_auxiliary_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_aad627a91e87ac22 main_image_handle0 auxiliary_id1 out_auxiliary_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_free_auxiliary_types@
+foreign import ccall safe "hs_bindgen_3e5bdbce07abeacb" hs_bindgen_3e5bdbce07abeacb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_free_auxiliary_types@
+hs_bindgen_3e5bdbce07abeacb ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_3e5bdbce07abeacb =
+  BG.fromFFIType hs_bindgen_3e5bdbce07abeacb_base
+
+{-| __C declaration:__ @heif_image_handle_free_auxiliary_types@
+
+    __defined at:__ @libheif\/heif_aux_images.h 175:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_free_auxiliary_types ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_free_auxiliary_types =
+  hs_bindgen_3e5bdbce07abeacb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_entity_groups@
+foreign import ccall safe "hs_bindgen_324b9ac9bccacbea" hs_bindgen_324b9ac9bccacbea_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_entity_groups@
+hs_bindgen_324b9ac9bccacbea ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> Heif_item_id
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr Heif_entity_group)
+hs_bindgen_324b9ac9bccacbea =
+  BG.fromFFIType hs_bindgen_324b9ac9bccacbea_base
+
+{-| __C declaration:__ @heif_context_get_entity_groups@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 46:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_entity_groups ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @type_filter@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @item_filter@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_num_groups@
+  -> IO (BG.Ptr Heif_entity_group)
+heif_context_get_entity_groups =
+  hs_bindgen_324b9ac9bccacbea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_entity_groups_release@
+foreign import ccall safe "hs_bindgen_5b6c3bc2afeaec5a" hs_bindgen_5b6c3bc2afeaec5a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_entity_groups_release@
+hs_bindgen_5b6c3bc2afeaec5a ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_5b6c3bc2afeaec5a =
+  BG.fromFFIType hs_bindgen_5b6c3bc2afeaec5a_base
+
+{-| __C declaration:__ @heif_entity_groups_release@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 53:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_entity_groups_release ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+     -- ^ __C declaration:__ @num_groups@
+  -> IO ()
+heif_entity_groups_release =
+  hs_bindgen_5b6c3bc2afeaec5a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_global_security_limits@
+foreign import ccall safe "hs_bindgen_8bb38c3366b348bc" hs_bindgen_8bb38c3366b348bc_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_global_security_limits@
+hs_bindgen_8bb38c3366b348bc :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_8bb38c3366b348bc =
+  BG.fromFFIType hs_bindgen_8bb38c3366b348bc_base
+
+{-| __C declaration:__ @heif_get_global_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 94:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_global_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_global_security_limits =
+  hs_bindgen_8bb38c3366b348bc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_disabled_security_limits@
+foreign import ccall safe "hs_bindgen_21dab9bbdea240f9" hs_bindgen_21dab9bbdea240f9_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_disabled_security_limits@
+hs_bindgen_21dab9bbdea240f9 :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_21dab9bbdea240f9 =
+  BG.fromFFIType hs_bindgen_21dab9bbdea240f9_base
+
+{-| __C declaration:__ @heif_get_disabled_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 98:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_disabled_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_disabled_security_limits =
+  hs_bindgen_21dab9bbdea240f9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_security_limits@
+foreign import ccall safe "hs_bindgen_5ef579d9235552d1" hs_bindgen_5ef579d9235552d1_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_security_limits@
+hs_bindgen_5ef579d9235552d1 ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+hs_bindgen_5ef579d9235552d1 =
+  BG.fromFFIType hs_bindgen_5ef579d9235552d1_base
+
+{-| __C declaration:__ @heif_context_get_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 103:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_security_limits ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+heif_context_get_security_limits =
+  hs_bindgen_5ef579d9235552d1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_security_limits@
+foreign import ccall safe "hs_bindgen_57a440143dafec19" hs_bindgen_57a440143dafec19_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_security_limits@
+hs_bindgen_57a440143dafec19 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_57a440143dafec19 =
+  BG.fromFFIType hs_bindgen_57a440143dafec19_base
+
+{-| __C declaration:__ @heif_context_set_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_security_limits ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> IO Heif_error
+heif_context_set_security_limits =
+  \x0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_57a440143dafec19 x0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_maximum_image_size_limit@
+foreign import ccall safe "hs_bindgen_cf4163e78a532a00" hs_bindgen_cf4163e78a532a00_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_maximum_image_size_limit@
+hs_bindgen_cf4163e78a532a00 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_cf4163e78a532a00 =
+  BG.fromFFIType hs_bindgen_cf4163e78a532a00_base
+
+{-| __C declaration:__ @heif_context_set_maximum_image_size_limit@
+
+    __defined at:__ @libheif\/heif_security.h 117:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_maximum_image_size_limit ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @maximum_width@
+  -> IO ()
+heif_context_set_maximum_image_size_limit =
+  hs_bindgen_cf4163e78a532a00
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_alloc@
+foreign import ccall safe "hs_bindgen_4f11b82642ca89a5" hs_bindgen_4f11b82642ca89a5_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_alloc@
+hs_bindgen_4f11b82642ca89a5 :: IO (BG.Ptr Heif_context)
+hs_bindgen_4f11b82642ca89a5 =
+  BG.fromFFIType hs_bindgen_4f11b82642ca89a5_base
+
+{-| __C declaration:__ @heif_context_alloc@
+
+    __defined at:__ @libheif\/heif_context.h 130:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_alloc :: IO (BG.Ptr Heif_context)
+heif_context_alloc = hs_bindgen_4f11b82642ca89a5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_free@
+foreign import ccall safe "hs_bindgen_97d3146ab8e2e79e" hs_bindgen_97d3146ab8e2e79e_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_free@
+hs_bindgen_97d3146ab8e2e79e ::
+     BG.Ptr Heif_context
+  -> IO ()
+hs_bindgen_97d3146ab8e2e79e =
+  BG.fromFFIType hs_bindgen_97d3146ab8e2e79e_base
+
+{-| __C declaration:__ @heif_context_free@
+
+    __defined at:__ @libheif\/heif_context.h 134:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_free ::
+     BG.Ptr Heif_context
+  -> IO ()
+heif_context_free = hs_bindgen_97d3146ab8e2e79e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_file@
+foreign import ccall safe "hs_bindgen_da6b2212d5c04e61" hs_bindgen_da6b2212d5c04e61_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_file@
+hs_bindgen_da6b2212d5c04e61 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_da6b2212d5c04e61 =
+  BG.fromFFIType hs_bindgen_da6b2212d5c04e61_base
+
+{-| __C declaration:__ @heif_context_read_from_file@
+
+    __defined at:__ @libheif\/heif_context.h 237:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_file =
+  \x0 ->
+    \filename1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_da6b2212d5c04e61 x0 filename1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory@
+foreign import ccall safe "hs_bindgen_e14cdfad18c1ee01" hs_bindgen_e14cdfad18c1ee01_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word64
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory@
+hs_bindgen_e14cdfad18c1ee01 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e14cdfad18c1ee01 =
+  BG.fromFFIType hs_bindgen_e14cdfad18c1ee01_base
+
+{-| __C declaration:__ @heif_context_read_from_memory@
+
+    __defined at:__ @libheif\/heif_context.h 244:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_e14cdfad18c1ee01 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory_without_copy@
+foreign import ccall safe "hs_bindgen_41af2790f3e2e582" hs_bindgen_41af2790f3e2e582_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word64
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory_without_copy@
+hs_bindgen_41af2790f3e2e582 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_41af2790f3e2e582 =
+  BG.fromFFIType hs_bindgen_41af2790f3e2e582_base
+
+{-| __C declaration:__ @heif_context_read_from_memory_without_copy@
+
+    __defined at:__ @libheif\/heif_context.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory_without_copy ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory_without_copy =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_41af2790f3e2e582 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_reader@
+foreign import ccall safe "hs_bindgen_41beae81a04b6975" hs_bindgen_41beae81a04b6975_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_reader@
+hs_bindgen_41beae81a04b6975 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+  -> BG.Ptr BG.Void
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_41beae81a04b6975 =
+  BG.fromFFIType hs_bindgen_41beae81a04b6975_base
+
+{-| __C declaration:__ @heif_context_read_from_reader@
+
+    __defined at:__ @libheif\/heif_context.h 256:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_reader ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+     -- ^ __C declaration:__ @reader@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_reader =
+  \x0 ->
+    \reader1 ->
+      \userdata2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_41beae81a04b6975 x0 reader1 userdata2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_number_of_top_level_images@
+foreign import ccall safe "hs_bindgen_24967fda9033f6a8" hs_bindgen_24967fda9033f6a8_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_number_of_top_level_images@
+hs_bindgen_24967fda9033f6a8 ::
+     BG.Ptr Heif_context
+  -> IO BG.CInt
+hs_bindgen_24967fda9033f6a8 =
+  BG.fromFFIType hs_bindgen_24967fda9033f6a8_base
+
+{-| __C declaration:__ @heif_context_get_number_of_top_level_images@
+
+    __defined at:__ @libheif\/heif_context.h 265:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_number_of_top_level_images ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_number_of_top_level_images =
+  hs_bindgen_24967fda9033f6a8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_is_top_level_image_ID@
+foreign import ccall safe "hs_bindgen_60a32ad03b88d023" hs_bindgen_60a32ad03b88d023_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_is_top_level_image_ID@
+hs_bindgen_60a32ad03b88d023 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> IO BG.CInt
+hs_bindgen_60a32ad03b88d023 =
+  BG.fromFFIType hs_bindgen_60a32ad03b88d023_base
+
+{-| __C declaration:__ @heif_context_is_top_level_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 268:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_is_top_level_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO BG.CInt
+heif_context_is_top_level_image_ID =
+  hs_bindgen_60a32ad03b88d023
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_list_of_top_level_image_IDs@
+foreign import ccall safe "hs_bindgen_0b88933276286d97" hs_bindgen_0b88933276286d97_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_list_of_top_level_image_IDs@
+hs_bindgen_0b88933276286d97 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_0b88933276286d97 =
+  BG.fromFFIType hs_bindgen_0b88933276286d97_base
+
+{-| __C declaration:__ @heif_context_get_list_of_top_level_image_IDs@
+
+    __defined at:__ @libheif\/heif_context.h 273:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_list_of_top_level_image_IDs ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ID_array@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_list_of_top_level_image_IDs =
+  hs_bindgen_0b88933276286d97
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_ID@
+foreign import ccall safe "hs_bindgen_d2b9465ca3f1a7a3" hs_bindgen_d2b9465ca3f1a7a3_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_ID@
+hs_bindgen_d2b9465ca3f1a7a3 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d2b9465ca3f1a7a3 =
+  BG.fromFFIType hs_bindgen_d2b9465ca3f1a7a3_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 278:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO Heif_error
+heif_context_get_primary_image_ID =
+  \ctx0 ->
+    \id1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_d2b9465ca3f1a7a3 ctx0 id1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_handle@
+foreign import ccall safe "hs_bindgen_eddef87dcb6b9da2" hs_bindgen_eddef87dcb6b9da2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_handle@
+hs_bindgen_eddef87dcb6b9da2 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_eddef87dcb6b9da2 =
+  BG.fromFFIType hs_bindgen_eddef87dcb6b9da2_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 283:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_primary_image_handle =
+  \ctx0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_eddef87dcb6b9da2 ctx0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_image_handle@
+foreign import ccall safe "hs_bindgen_64043a0ab8e93721" hs_bindgen_64043a0ab8e93721_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_image_handle@
+hs_bindgen_64043a0ab8e93721 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_64043a0ab8e93721 =
+  BG.fromFFIType hs_bindgen_64043a0ab8e93721_base
+
+{-| __C declaration:__ @heif_context_get_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 288:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_image_handle =
+  \ctx0 ->
+    \id1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_64043a0ab8e93721 ctx0 id1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_debug_dump_boxes_to_file@
+foreign import ccall safe "hs_bindgen_b25f68ddfd09f003" hs_bindgen_b25f68ddfd09f003_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_debug_dump_boxes_to_file@
+hs_bindgen_b25f68ddfd09f003 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_b25f68ddfd09f003 =
+  BG.fromFFIType hs_bindgen_b25f68ddfd09f003_base
+
+{-| __C declaration:__ @heif_context_debug_dump_boxes_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 296:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_debug_dump_boxes_to_file ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @fd@
+  -> IO ()
+heif_context_debug_dump_boxes_to_file =
+  hs_bindgen_b25f68ddfd09f003
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_write_mini_format@
+foreign import ccall safe "hs_bindgen_33eec71afe55377e" hs_bindgen_33eec71afe55377e_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_write_mini_format@
+hs_bindgen_33eec71afe55377e ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_33eec71afe55377e =
+  BG.fromFFIType hs_bindgen_33eec71afe55377e_base
+
+{-| __C declaration:__ @heif_context_set_write_mini_format@
+
+    __defined at:__ @libheif\/heif_context.h 309:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_write_mini_format ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO ()
+heif_context_set_write_mini_format =
+  hs_bindgen_33eec71afe55377e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write_to_file@
+foreign import ccall safe "hs_bindgen_4ccb67696cf9af48" hs_bindgen_4ccb67696cf9af48_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write_to_file@
+hs_bindgen_4ccb67696cf9af48 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4ccb67696cf9af48 =
+  BG.fromFFIType hs_bindgen_4ccb67696cf9af48_base
+
+{-| __C declaration:__ @heif_context_write_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 316:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write_to_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> IO Heif_error
+heif_context_write_to_file =
+  \x0 ->
+    \filename1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4ccb67696cf9af48 x0 filename1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write@
+foreign import ccall safe "hs_bindgen_567900ed014ef754" hs_bindgen_567900ed014ef754_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write@
+hs_bindgen_567900ed014ef754 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_567900ed014ef754 =
+  BG.fromFFIType hs_bindgen_567900ed014ef754_base
+
+{-| __C declaration:__ @heif_context_write@
+
+    __defined at:__ @libheif\/heif_context.h 335:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+     -- ^ __C declaration:__ @writer@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> IO Heif_error
+heif_context_write =
+  \x0 ->
+    \writer1 ->
+      \userdata2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_567900ed014ef754 x0 writer1 userdata2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_encoder_for_format@
+foreign import ccall safe "hs_bindgen_eec4a0d4bef90233" hs_bindgen_eec4a0d4bef90233_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_encoder_for_format@
+hs_bindgen_eec4a0d4bef90233 ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_eec4a0d4bef90233 =
+  BG.fromFFIType hs_bindgen_eec4a0d4bef90233_base
+
+{-| __C declaration:__ @heif_have_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 63:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_encoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_encoder_for_format =
+  hs_bindgen_eec4a0d4bef90233
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_encoder_descriptors@
+foreign import ccall safe "hs_bindgen_52de4c5e7a32818d" hs_bindgen_52de4c5e7a32818d_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_encoder_descriptors@
+hs_bindgen_52de4c5e7a32818d ::
+     Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_52de4c5e7a32818d =
+  BG.fromFFIType hs_bindgen_52de4c5e7a32818d_base
+
+{-| __C declaration:__ @heif_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 72:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_encoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_encoder_descriptors =
+  hs_bindgen_52de4c5e7a32818d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_name@
+foreign import ccall safe "hs_bindgen_1174aa754ff0ec8a" hs_bindgen_1174aa754ff0ec8a_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_name@
+hs_bindgen_1174aa754ff0ec8a ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_1174aa754ff0ec8a =
+  BG.fromFFIType hs_bindgen_1174aa754ff0ec8a_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 79:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_name =
+  hs_bindgen_1174aa754ff0ec8a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_id_name@
+foreign import ccall safe "hs_bindgen_db3d052821cb7feb" hs_bindgen_db3d052821cb7feb_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_id_name@
+hs_bindgen_db3d052821cb7feb ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_db3d052821cb7feb =
+  BG.fromFFIType hs_bindgen_db3d052821cb7feb_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 84:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_id_name =
+  hs_bindgen_db3d052821cb7feb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_compression_format@
+foreign import ccall safe "hs_bindgen_7a091fe5257e2928" hs_bindgen_7a091fe5257e2928_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_compression_format@
+hs_bindgen_7a091fe5257e2928 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+hs_bindgen_7a091fe5257e2928 =
+  BG.fromFFIType hs_bindgen_7a091fe5257e2928_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_compression_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 88:1@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_compression_format ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+heif_encoder_descriptor_get_compression_format =
+  hs_bindgen_7a091fe5257e2928
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossy_compression@
+foreign import ccall safe "hs_bindgen_9855aa70160fb232" hs_bindgen_9855aa70160fb232_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossy_compression@
+hs_bindgen_9855aa70160fb232 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_9855aa70160fb232 =
+  BG.fromFFIType hs_bindgen_9855aa70160fb232_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 91:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossy_compression =
+  hs_bindgen_9855aa70160fb232
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossless_compression@
+foreign import ccall safe "hs_bindgen_e8aa3e2ad6e21521" hs_bindgen_e8aa3e2ad6e21521_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossless_compression@
+hs_bindgen_e8aa3e2ad6e21521 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_e8aa3e2ad6e21521 =
+  BG.fromFFIType hs_bindgen_e8aa3e2ad6e21521_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 94:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossless_compression =
+  hs_bindgen_e8aa3e2ad6e21521
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder@
+foreign import ccall safe "hs_bindgen_5e0d51edb7f5e790" hs_bindgen_5e0d51edb7f5e790_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder@
+hs_bindgen_5e0d51edb7f5e790 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5e0d51edb7f5e790 =
+  BG.fromFFIType hs_bindgen_5e0d51edb7f5e790_base
+
+{-| __C declaration:__ @heif_context_get_encoder@
+
+    __defined at:__ @libheif\/heif_encoding.h 99:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+     -- ^ __C declaration:__ @out_encoder@
+  -> IO Heif_error
+heif_context_get_encoder =
+  \context0 ->
+    \x1 ->
+      \out_encoder2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_5e0d51edb7f5e790 context0 x1 out_encoder2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_for_format@
+foreign import ccall safe "hs_bindgen_e87023be50eb7156" hs_bindgen_e87023be50eb7156_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_for_format@
+hs_bindgen_e87023be50eb7156 ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e87023be50eb7156 =
+  BG.fromFFIType hs_bindgen_e87023be50eb7156_base
+
+{-| __C declaration:__ @heif_context_get_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 106:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_for_format ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> IO Heif_error
+heif_context_get_encoder_for_format =
+  \context0 ->
+    \format1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_e87023be50eb7156 context0 format1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_release@
+foreign import ccall safe "hs_bindgen_9ef0bda629baf529" hs_bindgen_9ef0bda629baf529_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_release@
+hs_bindgen_9ef0bda629baf529 ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+hs_bindgen_9ef0bda629baf529 =
+  BG.fromFFIType hs_bindgen_9ef0bda629baf529_base
+
+{-| __C declaration:__ @heif_encoder_release@
+
+    __defined at:__ @libheif\/heif_encoding.h 114:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_release ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+heif_encoder_release = hs_bindgen_9ef0bda629baf529
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_name@
+foreign import ccall safe "hs_bindgen_eb93268554bef6fb" hs_bindgen_eb93268554bef6fb_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_name@
+hs_bindgen_eb93268554bef6fb ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_eb93268554bef6fb =
+  BG.fromFFIType hs_bindgen_eb93268554bef6fb_base
+
+{-| __C declaration:__ @heif_encoder_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 118:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_name ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_get_name = hs_bindgen_eb93268554bef6fb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossy_quality@
+foreign import ccall safe "hs_bindgen_eb6a076f846bdaa3" hs_bindgen_eb6a076f846bdaa3_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossy_quality@
+hs_bindgen_eb6a076f846bdaa3 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_eb6a076f846bdaa3 =
+  BG.fromFFIType hs_bindgen_eb6a076f846bdaa3_base
+
+{-| __C declaration:__ @heif_encoder_set_lossy_quality@
+
+    __defined at:__ @libheif\/heif_encoding.h 134:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossy_quality ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @quality@
+  -> IO Heif_error
+heif_encoder_set_lossy_quality =
+  \x0 ->
+    \quality1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_eb6a076f846bdaa3 x0 quality1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossless@
+foreign import ccall safe "hs_bindgen_979d01b0f5a3cad4" hs_bindgen_979d01b0f5a3cad4_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossless@
+hs_bindgen_979d01b0f5a3cad4 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_979d01b0f5a3cad4 =
+  BG.fromFFIType hs_bindgen_979d01b0f5a3cad4_base
+
+{-| __C declaration:__ @heif_encoder_set_lossless@
+
+    __defined at:__ @libheif\/heif_encoding.h 137:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossless ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO Heif_error
+heif_encoder_set_lossless =
+  \x0 ->
+    \enable1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_979d01b0f5a3cad4 x0 enable1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_logging_level@
+foreign import ccall safe "hs_bindgen_24781b15a9b8e5df" hs_bindgen_24781b15a9b8e5df_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_logging_level@
+hs_bindgen_24781b15a9b8e5df ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_24781b15a9b8e5df =
+  BG.fromFFIType hs_bindgen_24781b15a9b8e5df_base
+
+{-| __C declaration:__ @heif_encoder_set_logging_level@
+
+    __defined at:__ @libheif\/heif_encoding.h 141:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_logging_level ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @level@
+  -> IO Heif_error
+heif_encoder_set_logging_level =
+  \x0 ->
+    \level1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_24781b15a9b8e5df x0 level1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_list_parameters@
+foreign import ccall safe "hs_bindgen_18ea2b17f3c2144a" hs_bindgen_18ea2b17f3c2144a_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_list_parameters@
+hs_bindgen_18ea2b17f3c2144a ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+hs_bindgen_18ea2b17f3c2144a =
+  BG.fromFFIType hs_bindgen_18ea2b17f3c2144a_base
+
+{-| __C declaration:__ @heif_encoder_list_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 147:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_list_parameters ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+heif_encoder_list_parameters =
+  hs_bindgen_18ea2b17f3c2144a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_name@
+foreign import ccall safe "hs_bindgen_af3caa9ff0a88eb8" hs_bindgen_af3caa9ff0a88eb8_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_name@
+hs_bindgen_af3caa9ff0a88eb8 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_af3caa9ff0a88eb8 =
+  BG.fromFFIType hs_bindgen_af3caa9ff0a88eb8_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 151:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_name ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_parameter_get_name =
+  hs_bindgen_af3caa9ff0a88eb8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_type@
+foreign import ccall safe "hs_bindgen_a1285395e3755e61" hs_bindgen_a1285395e3755e61_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_type@
+hs_bindgen_a1285395e3755e61 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+hs_bindgen_a1285395e3755e61 =
+  BG.fromFFIType hs_bindgen_a1285395e3755e61_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 163:34@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_type ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+heif_encoder_parameter_get_type =
+  hs_bindgen_a1285395e3755e61
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_range@
+foreign import ccall safe "hs_bindgen_f5e5f609ff5ef7aa" hs_bindgen_f5e5f609ff5ef7aa_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_range@
+hs_bindgen_f5e5f609ff5ef7aa ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f5e5f609ff5ef7aa =
+  BG.fromFFIType hs_bindgen_f5e5f609ff5ef7aa_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_range ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_range =
+  \x0 ->
+    \have_minimum_maximum1 ->
+      \minimum2 ->
+        \maximum3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_f5e5f609ff5ef7aa x0 have_minimum_maximum1 minimum2 maximum3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_values@
+foreign import ccall safe "hs_bindgen_41c9049f903741b9" hs_bindgen_41c9049f903741b9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_values@
+hs_bindgen_41c9049f903741b9 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_41c9049f903741b9 =
+  BG.fromFFIType hs_bindgen_41c9049f903741b9_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 174:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_values =
+  \x0 ->
+    \have_minimum1 ->
+      \have_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            \num_valid_values5 ->
+              \out_integer_array6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_41c9049f903741b9 x0 have_minimum1 have_maximum2 minimum3 maximum4 num_valid_values5 out_integer_array6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_string_values@
+foreign import ccall safe "hs_bindgen_83a47350b89b3e72" hs_bindgen_83a47350b89b3e72_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_string_values@
+hs_bindgen_83a47350b89b3e72 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_83a47350b89b3e72 =
+  BG.fromFFIType hs_bindgen_83a47350b89b3e72_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_string_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 181:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_string_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_string_values =
+  \x0 ->
+    \out_stringarray1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_83a47350b89b3e72 x0 out_stringarray1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_integer@
+foreign import ccall safe "hs_bindgen_18cabf49ede306b0" hs_bindgen_18cabf49ede306b0_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_integer@
+hs_bindgen_18cabf49ede306b0 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_18cabf49ede306b0 =
+  BG.fromFFIType hs_bindgen_18cabf49ede306b0_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 186:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_18cabf49ede306b0 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_integer@
+foreign import ccall safe "hs_bindgen_9904a2037102bffe" hs_bindgen_9904a2037102bffe_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_integer@
+hs_bindgen_9904a2037102bffe ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9904a2037102bffe =
+  BG.fromFFIType hs_bindgen_9904a2037102bffe_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 191:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_9904a2037102bffe x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_range@
+foreign import ccall safe "hs_bindgen_1bc5d24eb27254b7" hs_bindgen_1bc5d24eb27254b7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_range@
+hs_bindgen_1bc5d24eb27254b7 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_1bc5d24eb27254b7 =
+  BG.fromFFIType hs_bindgen_1bc5d24eb27254b7_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_range ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_range =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_1bc5d24eb27254b7 x0 parameter_name1 have_minimum_maximum2 minimum3 maximum4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_boolean@
+foreign import ccall safe "hs_bindgen_836ffd64ae147e78" hs_bindgen_836ffd64ae147e78_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_boolean@
+hs_bindgen_836ffd64ae147e78 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_836ffd64ae147e78 =
+  BG.fromFFIType hs_bindgen_836ffd64ae147e78_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 203:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_836ffd64ae147e78 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_boolean@
+foreign import ccall safe "hs_bindgen_19a10bdb28e623c2" hs_bindgen_19a10bdb28e623c2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_boolean@
+hs_bindgen_19a10bdb28e623c2 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_19a10bdb28e623c2 =
+  BG.fromFFIType hs_bindgen_19a10bdb28e623c2_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 208:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_19a10bdb28e623c2 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_string@
+foreign import ccall safe "hs_bindgen_6e45433398da3eb9" hs_bindgen_6e45433398da3eb9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_string@
+hs_bindgen_6e45433398da3eb9 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6e45433398da3eb9 =
+  BG.fromFFIType hs_bindgen_6e45433398da3eb9_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 213:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_6e45433398da3eb9 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_string@
+foreign import ccall safe "hs_bindgen_85f0477af2b5af28" hs_bindgen_85f0477af2b5af28_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_string@
+hs_bindgen_85f0477af2b5af28 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_85f0477af2b5af28 =
+  BG.fromFFIType hs_bindgen_85f0477af2b5af28_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_85f0477af2b5af28 x0 parameter_name1 value2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_string_valid_values@
+foreign import ccall safe "hs_bindgen_813480544a744b7d" hs_bindgen_813480544a744b7d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_string_valid_values@
+hs_bindgen_813480544a744b7d ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_813480544a744b7d =
+  BG.fromFFIType hs_bindgen_813480544a744b7d_base
+
+{-| __C declaration:__ @heif_encoder_parameter_string_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 224:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_string_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_string_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \out_stringarray2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_813480544a744b7d x0 parameter_name1 out_stringarray2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_values@
+foreign import ccall safe "hs_bindgen_06fdadacba1a360c" hs_bindgen_06fdadacba1a360c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_values@
+hs_bindgen_06fdadacba1a360c ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_06fdadacba1a360c =
+  BG.fromFFIType hs_bindgen_06fdadacba1a360c_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 229:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum2 ->
+        \have_maximum3 ->
+          \minimum4 ->
+            \maximum5 ->
+              \num_valid_values6 ->
+                \out_integer_array7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_06fdadacba1a360c x0 parameter_name1 have_minimum2 have_maximum3 minimum4 maximum5 num_valid_values6 out_integer_array7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter@
+foreign import ccall safe "hs_bindgen_3e58e2dcaa03feb8" hs_bindgen_3e58e2dcaa03feb8_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter@
+hs_bindgen_3e58e2dcaa03feb8 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_3e58e2dcaa03feb8 =
+  BG.fromFFIType hs_bindgen_3e58e2dcaa03feb8_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 246:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_3e58e2dcaa03feb8 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter@
+foreign import ccall safe "hs_bindgen_931fa955709de69d" hs_bindgen_931fa955709de69d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter@
+hs_bindgen_931fa955709de69d ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_931fa955709de69d =
+  BG.fromFFIType hs_bindgen_931fa955709de69d_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 253:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value_ptr@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value_ptr2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_931fa955709de69d x0 parameter_name1 value_ptr2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_has_default@
+foreign import ccall safe "hs_bindgen_cadb6a2220566e31" hs_bindgen_cadb6a2220566e31_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_has_default@
+hs_bindgen_cadb6a2220566e31 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_cadb6a2220566e31 =
+  BG.fromFFIType hs_bindgen_cadb6a2220566e31_base
+
+{-| __C declaration:__ @heif_encoder_has_default@
+
+    __defined at:__ @libheif\/heif_encoding.h 259:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_has_default ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> IO BG.CInt
+heif_encoder_has_default =
+  hs_bindgen_cadb6a2220566e31
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_orientation_concat@
+foreign import ccall safe "hs_bindgen_73125422635fa771" hs_bindgen_73125422635fa771_base ::
+     BG.Word32
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_orientation_concat@
+hs_bindgen_73125422635fa771 ::
+     Heif_orientation
+  -> Heif_orientation
+  -> IO Heif_orientation
+hs_bindgen_73125422635fa771 =
+  BG.fromFFIType hs_bindgen_73125422635fa771_base
+
+{-| __C declaration:__ @heif_orientation_concat@
+
+    __defined at:__ @libheif\/heif_encoding.h 278:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_orientation_concat ::
+     Heif_orientation
+     -- ^ __C declaration:__ @first@
+  -> Heif_orientation
+     -- ^ __C declaration:__ @second@
+  -> IO Heif_orientation
+heif_orientation_concat = hs_bindgen_73125422635fa771
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_alloc@
+foreign import ccall safe "hs_bindgen_1800acc2f4b03a9f" hs_bindgen_1800acc2f4b03a9f_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_alloc@
+hs_bindgen_1800acc2f4b03a9f :: IO (BG.Ptr Heif_encoding_options)
+hs_bindgen_1800acc2f4b03a9f =
+  BG.fromFFIType hs_bindgen_1800acc2f4b03a9f_base
+
+{-| __C declaration:__ @heif_encoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_encoding.h 335:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_alloc :: IO (BG.Ptr Heif_encoding_options)
+heif_encoding_options_alloc =
+  hs_bindgen_1800acc2f4b03a9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_copy@
+foreign import ccall safe "hs_bindgen_fe75402432667b03" hs_bindgen_fe75402432667b03_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_copy@
+hs_bindgen_fe75402432667b03 ::
+     BG.Ptr Heif_encoding_options
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> IO ()
+hs_bindgen_fe75402432667b03 =
+  BG.fromFFIType hs_bindgen_fe75402432667b03_base
+
+{-| __C declaration:__ @heif_encoding_options_copy@
+
+    __defined at:__ @libheif\/heif_encoding.h 338:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_copy ::
+     BG.Ptr Heif_encoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_encoding_options_copy =
+  hs_bindgen_fe75402432667b03
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_free@
+foreign import ccall safe "hs_bindgen_da67241096710c84" hs_bindgen_da67241096710c84_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_free@
+hs_bindgen_da67241096710c84 ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+hs_bindgen_da67241096710c84 =
+  BG.fromFFIType hs_bindgen_da67241096710c84_base
+
+{-| __C declaration:__ @heif_encoding_options_free@
+
+    __defined at:__ @libheif\/heif_encoding.h 341:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_free ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+heif_encoding_options_free =
+  hs_bindgen_da67241096710c84
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_image@
+foreign import ccall safe "hs_bindgen_28f09a80ffe40e3d" hs_bindgen_28f09a80ffe40e3d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_image@
+hs_bindgen_28f09a80ffe40e3d ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_28f09a80ffe40e3d =
+  BG.fromFFIType hs_bindgen_28f09a80ffe40e3d_base
+
+{-| __C declaration:__ @heif_context_encode_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 350:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_image ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_image =
+  \x0 ->
+    \image1 ->
+      \encoder2 ->
+        \options3 ->
+          \out_image_handle4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_28f09a80ffe40e3d x0 image1 encoder2 options3 out_image_handle4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_overlay_image@
+foreign import ccall safe "hs_bindgen_60d0c75f40f4d059" hs_bindgen_60d0c75f40f4d059_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_overlay_image@
+hs_bindgen_60d0c75f40f4d059 ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word16
+  -> PtrConst.PtrConst Heif_item_id
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_60d0c75f40f4d059 =
+  BG.fromFFIType hs_bindgen_60d0c75f40f4d059_base
+
+{-| __C declaration:__ @heif_context_add_overlay_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 359:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_overlay_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @nImages@
+  -> PtrConst.PtrConst Heif_item_id
+     -- ^ __C declaration:__ @image_ids@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+     -- ^ __C declaration:__ @offsets@
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+     -- ^ __C declaration:__ @background_rgba@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_iovl_image_handle@
+  -> IO Heif_error
+heif_context_add_overlay_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \nImages3 ->
+          \image_ids4 ->
+            \offsets5 ->
+              \background_rgba6 ->
+                \out_iovl_image_handle7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_60d0c75f40f4d059 ctx0 image_width1 image_height2 nImages3 image_ids4 offsets5 background_rgba6 out_iovl_image_handle7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_primary_image@
+foreign import ccall safe "hs_bindgen_63e1fd26aac84129" hs_bindgen_63e1fd26aac84129_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_primary_image@
+hs_bindgen_63e1fd26aac84129 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_63e1fd26aac84129 =
+  BG.fromFFIType hs_bindgen_63e1fd26aac84129_base
+
+{-| __C declaration:__ @heif_context_set_primary_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 369:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_primary_image ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> IO Heif_error
+heif_context_set_primary_image =
+  \x0 ->
+    \image_handle1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_63e1fd26aac84129 x0 image_handle1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_major_brand@
+foreign import ccall safe "hs_bindgen_97f56663bca77c21" hs_bindgen_97f56663bca77c21_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_major_brand@
+hs_bindgen_97f56663bca77c21 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_97f56663bca77c21 =
+  BG.fromFFIType hs_bindgen_97f56663bca77c21_base
+
+{-| __C declaration:__ @heif_context_set_major_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 376:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_major_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @major_brand@
+  -> IO ()
+heif_context_set_major_brand =
+  hs_bindgen_97f56663bca77c21
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_compatible_brand@
+foreign import ccall safe "hs_bindgen_03d0e64d393a7f95" hs_bindgen_03d0e64d393a7f95_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_compatible_brand@
+hs_bindgen_03d0e64d393a7f95 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_03d0e64d393a7f95 =
+  BG.fromFFIType hs_bindgen_03d0e64d393a7f95_base
+
+{-| __C declaration:__ @heif_context_add_compatible_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 381:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_compatible_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @compatible_brand@
+  -> IO ()
+heif_context_add_compatible_brand =
+  hs_bindgen_03d0e64d393a7f95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_unif@
+foreign import ccall safe "hs_bindgen_17c891d9806c5635" hs_bindgen_17c891d9806c5635_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_unif@
+hs_bindgen_17c891d9806c5635 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_17c891d9806c5635 =
+  BG.fromFFIType hs_bindgen_17c891d9806c5635_base
+
+{-| __C declaration:__ @heif_context_set_unif@
+
+    __defined at:__ @libheif\/heif_encoding.h 395:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_unif ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @flag@
+  -> IO ()
+heif_context_set_unif = hs_bindgen_17c891d9806c5635
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossy_compression@
+foreign import ccall safe "hs_bindgen_7331b243ac8c0c44" hs_bindgen_7331b243ac8c0c44_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossy_compression@
+hs_bindgen_7331b243ac8c0c44 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_7331b243ac8c0c44 =
+  BG.fromFFIType hs_bindgen_7331b243ac8c0c44_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossy_compression =
+  hs_bindgen_7331b243ac8c0c44
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossless_compression@
+foreign import ccall safe "hs_bindgen_d9ed40b1c61c857e" hs_bindgen_d9ed40b1c61c857e_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossless_compression@
+hs_bindgen_d9ed40b1c61c857e ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_d9ed40b1c61c857e =
+  BG.fromFFIType hs_bindgen_d9ed40b1c61c857e_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 405:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossless_compression =
+  hs_bindgen_d9ed40b1c61c857e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_descriptors@
+foreign import ccall safe "hs_bindgen_6b3293489791860e" hs_bindgen_6b3293489791860e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_descriptors@
+hs_bindgen_6b3293489791860e ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_6b3293489791860e =
+  BG.fromFFIType hs_bindgen_6b3293489791860e_base
+
+{-| __C declaration:__ @heif_context_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 415:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_descriptors ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_encoder_descriptors =
+  hs_bindgen_6b3293489791860e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_max_decoding_threads@
+foreign import ccall safe "hs_bindgen_28f0ed35cb9d2279" hs_bindgen_28f0ed35cb9d2279_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_max_decoding_threads@
+hs_bindgen_28f0ed35cb9d2279 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_28f0ed35cb9d2279 =
+  BG.fromFFIType hs_bindgen_28f0ed35cb9d2279_base
+
+{-| __C declaration:__ @heif_context_set_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 40:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_max_decoding_threads ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_threads@
+  -> IO ()
+heif_context_set_max_decoding_threads =
+  hs_bindgen_28f0ed35cb9d2279
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_max_decoding_threads@
+foreign import ccall safe "hs_bindgen_70c02de3fb64eb44" hs_bindgen_70c02de3fb64eb44_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_max_decoding_threads@
+hs_bindgen_70c02de3fb64eb44 ::
+     PtrConst.PtrConst Heif_context
+  -> IO BG.CInt
+hs_bindgen_70c02de3fb64eb44 =
+  BG.fromFFIType hs_bindgen_70c02de3fb64eb44_base
+
+{-| __C declaration:__ @heif_context_get_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 47:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_max_decoding_threads ::
+     PtrConst.PtrConst Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_max_decoding_threads =
+  hs_bindgen_70c02de3fb64eb44
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_decoder_for_format@
+foreign import ccall safe "hs_bindgen_fae52e49bce8c2d9" hs_bindgen_fae52e49bce8c2d9_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_decoder_for_format@
+hs_bindgen_fae52e49bce8c2d9 ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_fae52e49bce8c2d9 =
+  BG.fromFFIType hs_bindgen_fae52e49bce8c2d9_base
+
+{-| __C declaration:__ @heif_have_decoder_for_format@
+
+    __defined at:__ @libheif\/heif_decoding.h 53:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_decoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_decoder_for_format =
+  hs_bindgen_fae52e49bce8c2d9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_alloc@
+foreign import ccall safe "hs_bindgen_102ab775cba50d0e" hs_bindgen_102ab775cba50d0e_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_alloc@
+hs_bindgen_102ab775cba50d0e :: IO (BG.Ptr Heif_decoding_options)
+hs_bindgen_102ab775cba50d0e =
+  BG.fromFFIType hs_bindgen_102ab775cba50d0e_base
+
+{-| __C declaration:__ @heif_decoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_decoding.h 165:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_alloc :: IO (BG.Ptr Heif_decoding_options)
+heif_decoding_options_alloc =
+  hs_bindgen_102ab775cba50d0e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_copy@
+foreign import ccall safe "hs_bindgen_dd38a52f42e667b2" hs_bindgen_dd38a52f42e667b2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_copy@
+hs_bindgen_dd38a52f42e667b2 ::
+     BG.Ptr Heif_decoding_options
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> IO ()
+hs_bindgen_dd38a52f42e667b2 =
+  BG.fromFFIType hs_bindgen_dd38a52f42e667b2_base
+
+{-| __C declaration:__ @heif_decoding_options_copy@
+
+    __defined at:__ @libheif\/heif_decoding.h 168:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_copy ::
+     BG.Ptr Heif_decoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_decoding_options_copy =
+  hs_bindgen_dd38a52f42e667b2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_free@
+foreign import ccall safe "hs_bindgen_9ce764a4e512cd45" hs_bindgen_9ce764a4e512cd45_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_free@
+hs_bindgen_9ce764a4e512cd45 ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+hs_bindgen_9ce764a4e512cd45 =
+  BG.fromFFIType hs_bindgen_9ce764a4e512cd45_base
+
+{-| __C declaration:__ @heif_decoding_options_free@
+
+    __defined at:__ @libheif\/heif_decoding.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_free ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+heif_decoding_options_free =
+  hs_bindgen_9ce764a4e512cd45
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_decoder_descriptors@
+foreign import ccall safe "hs_bindgen_89078000e479e916" hs_bindgen_89078000e479e916_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_decoder_descriptors@
+hs_bindgen_89078000e479e916 ::
+     Heif_compression_format
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_89078000e479e916 =
+  BG.fromFFIType hs_bindgen_89078000e479e916_base
+
+{-| __C declaration:__ @heif_get_decoder_descriptors@
+
+    __defined at:__ @libheif\/heif_decoding.h 183:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_decoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+     -- ^ __C declaration:__ @out_decoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_decoder_descriptors =
+  hs_bindgen_89078000e479e916
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_name@
+foreign import ccall safe "hs_bindgen_6dbb7f5c61ececf8" hs_bindgen_6dbb7f5c61ececf8_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_name@
+hs_bindgen_6dbb7f5c61ececf8 ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_6dbb7f5c61ececf8 =
+  BG.fromFFIType hs_bindgen_6dbb7f5c61ececf8_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 189:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_name =
+  hs_bindgen_6dbb7f5c61ececf8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_id_name@
+foreign import ccall safe "hs_bindgen_ac750dacaf5ed61b" hs_bindgen_ac750dacaf5ed61b_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_id_name@
+hs_bindgen_ac750dacaf5ed61b ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_ac750dacaf5ed61b =
+  BG.fromFFIType hs_bindgen_ac750dacaf5ed61b_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 195:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_id_name =
+  hs_bindgen_ac750dacaf5ed61b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decode_image@
+foreign import ccall safe "hs_bindgen_9df2f46857b2f874" hs_bindgen_9df2f46857b2f874_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decode_image@
+hs_bindgen_9df2f46857b2f874 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9df2f46857b2f874 =
+  BG.fromFFIType hs_bindgen_9df2f46857b2f874_base
+
+{-| __C declaration:__ @heif_decode_image@
+
+    __defined at:__ @libheif\/heif_decoding.h 209:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decode_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_decode_image =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_9df2f46857b2f874 in_handle0 out_img1 colorspace2 chroma3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release@
+foreign import ccall safe "hs_bindgen_3f481728e9551d14" hs_bindgen_3f481728e9551d14_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release@
+hs_bindgen_3f481728e9551d14 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+hs_bindgen_3f481728e9551d14 =
+  BG.fromFFIType hs_bindgen_3f481728e9551d14_base
+
+{-| __C declaration:__ @heif_image_handle_release@
+
+    __defined at:__ @libheif\/heif_image_handle.h 47:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+heif_image_handle_release =
+  hs_bindgen_3f481728e9551d14
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_primary_image@
+foreign import ccall safe "hs_bindgen_c047b47f9376d997" hs_bindgen_c047b47f9376d997_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_primary_image@
+hs_bindgen_c047b47f9376d997 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_c047b47f9376d997 =
+  BG.fromFFIType hs_bindgen_c047b47f9376d997_base
+
+{-| __C declaration:__ @heif_image_handle_is_primary_image@
+
+    __defined at:__ @libheif\/heif_image_handle.h 51:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_primary_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_is_primary_image =
+  hs_bindgen_c047b47f9376d997
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_item_id@
+foreign import ccall safe "hs_bindgen_36d4e2a162ff52b2" hs_bindgen_36d4e2a162ff52b2_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_item_id@
+hs_bindgen_36d4e2a162ff52b2 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_item_id
+hs_bindgen_36d4e2a162ff52b2 =
+  BG.fromFFIType hs_bindgen_36d4e2a162ff52b2_base
+
+{-| __C declaration:__ @heif_image_handle_get_item_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_item_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_item_id
+heif_image_handle_get_item_id =
+  hs_bindgen_36d4e2a162ff52b2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_width@
+foreign import ccall safe "hs_bindgen_ebd6ded40b5d2ee4" hs_bindgen_ebd6ded40b5d2ee4_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_width@
+hs_bindgen_ebd6ded40b5d2ee4 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_ebd6ded40b5d2ee4 =
+  BG.fromFFIType hs_bindgen_ebd6ded40b5d2ee4_base
+
+{-| __C declaration:__ @heif_image_handle_get_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 61:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_width =
+  hs_bindgen_ebd6ded40b5d2ee4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_height@
+foreign import ccall safe "hs_bindgen_43b18c70d95495b8" hs_bindgen_43b18c70d95495b8_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_height@
+hs_bindgen_43b18c70d95495b8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_43b18c70d95495b8 =
+  BG.fromFFIType hs_bindgen_43b18c70d95495b8_base
+
+{-| __C declaration:__ @heif_image_handle_get_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 68:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_height =
+  hs_bindgen_43b18c70d95495b8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_alpha_channel@
+foreign import ccall safe "hs_bindgen_d43fe68f9e8aea95" hs_bindgen_d43fe68f9e8aea95_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_alpha_channel@
+hs_bindgen_d43fe68f9e8aea95 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d43fe68f9e8aea95 =
+  BG.fromFFIType hs_bindgen_d43fe68f9e8aea95_base
+
+{-| __C declaration:__ @heif_image_handle_has_alpha_channel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 71:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_alpha_channel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_alpha_channel =
+  hs_bindgen_d43fe68f9e8aea95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_premultiplied_alpha@
+foreign import ccall safe "hs_bindgen_318428b307f06343" hs_bindgen_318428b307f06343_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_premultiplied_alpha@
+hs_bindgen_318428b307f06343 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_318428b307f06343 =
+  BG.fromFFIType hs_bindgen_318428b307f06343_base
+
+{-| __C declaration:__ @heif_image_handle_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image_handle.h 74:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_premultiplied_alpha ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_is_premultiplied_alpha =
+  hs_bindgen_318428b307f06343
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_luma_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_be41ab4faa6f8082" hs_bindgen_be41ab4faa6f8082_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_luma_bits_per_pixel@
+hs_bindgen_be41ab4faa6f8082 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_be41ab4faa6f8082 =
+  BG.fromFFIType hs_bindgen_be41ab4faa6f8082_base
+
+{-| __C declaration:__ @heif_image_handle_get_luma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 79:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_luma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_luma_bits_per_pixel =
+  hs_bindgen_be41ab4faa6f8082
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_chroma_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_984920cbd156ac9b" hs_bindgen_984920cbd156ac9b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_chroma_bits_per_pixel@
+hs_bindgen_984920cbd156ac9b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_984920cbd156ac9b =
+  BG.fromFFIType hs_bindgen_984920cbd156ac9b_base
+
+{-| __C declaration:__ @heif_image_handle_get_chroma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 84:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_chroma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_chroma_bits_per_pixel =
+  hs_bindgen_984920cbd156ac9b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_preferred_decoding_colorspace@
+foreign import ccall safe "hs_bindgen_f5e3531e6391b927" hs_bindgen_f5e3531e6391b927_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_preferred_decoding_colorspace@
+hs_bindgen_f5e3531e6391b927 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_colorspace
+  -> BG.Ptr Heif_chroma
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f5e3531e6391b927 =
+  BG.fromFFIType hs_bindgen_f5e3531e6391b927_base
+
+{-| __C declaration:__ @heif_image_handle_get_preferred_decoding_colorspace@
+
+    __defined at:__ @libheif\/heif_image_handle.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_preferred_decoding_colorspace ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> BG.Ptr Heif_colorspace
+     -- ^ __C declaration:__ @out_colorspace@
+  -> BG.Ptr Heif_chroma
+     -- ^ __C declaration:__ @out_chroma@
+  -> IO Heif_error
+heif_image_handle_get_preferred_decoding_colorspace =
+  \image_handle0 ->
+    \out_colorspace1 ->
+      \out_chroma2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_f5e3531e6391b927 image_handle0 out_colorspace1 out_chroma2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_width@
+foreign import ccall safe "hs_bindgen_d0e9054b24cf1428" hs_bindgen_d0e9054b24cf1428_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_width@
+hs_bindgen_d0e9054b24cf1428 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d0e9054b24cf1428 =
+  BG.fromFFIType hs_bindgen_d0e9054b24cf1428_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 110:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_width =
+  hs_bindgen_d0e9054b24cf1428
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_height@
+foreign import ccall safe "hs_bindgen_dbbbf9b131586b02" hs_bindgen_dbbbf9b131586b02_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_height@
+hs_bindgen_dbbbf9b131586b02 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_dbbbf9b131586b02 =
+  BG.fromFFIType hs_bindgen_dbbbf9b131586b02_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_height =
+  hs_bindgen_dbbbf9b131586b02
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_3c36641a28b1e88c" hs_bindgen_3c36641a28b1e88c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_pixel_aspect_ratio@
+hs_bindgen_3c36641a28b1e88c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_3c36641a28b1e88c =
+  BG.fromFFIType hs_bindgen_3c36641a28b1e88c_base
+
+{-| __C declaration:__ @heif_image_handle_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image_handle.h 117:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO BG.CInt
+heif_image_handle_get_pixel_aspect_ratio =
+  hs_bindgen_3c36641a28b1e88c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_context@
+foreign import ccall safe "hs_bindgen_84a3dea317661a70" hs_bindgen_84a3dea317661a70_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_context@
+hs_bindgen_84a3dea317661a70 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (BG.Ptr Heif_context)
+hs_bindgen_84a3dea317661a70 =
+  BG.fromFFIType hs_bindgen_84a3dea317661a70_base
+
+{-| __C declaration:__ @heif_image_handle_get_context@
+
+    __defined at:__ @libheif\/heif_image_handle.h 129:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_context ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (BG.Ptr Heif_context)
+heif_image_handle_get_context =
+  hs_bindgen_84a3dea317661a70
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_content_id@
+foreign import ccall safe "hs_bindgen_e67495bf8fb75694" hs_bindgen_e67495bf8fb75694_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_content_id@
+hs_bindgen_e67495bf8fb75694 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_e67495bf8fb75694 =
+  BG.fromFFIType hs_bindgen_e67495bf8fb75694_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 132:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_content_id =
+  hs_bindgen_e67495bf8fb75694
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_content_id@
+foreign import ccall safe "hs_bindgen_a61840a08f259978" hs_bindgen_a61840a08f259978_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_content_id@
+hs_bindgen_a61840a08f259978 ::
+     BG.Ptr Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_a61840a08f259978 =
+  BG.fromFFIType hs_bindgen_a61840a08f259978_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 135:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_content_id ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_content_id =
+  hs_bindgen_a61840a08f259978
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_cmpd_components@
+foreign import ccall safe "hs_bindgen_ecf5d96ae1394088" hs_bindgen_ecf5d96ae1394088_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_cmpd_components@
+hs_bindgen_ecf5d96ae1394088 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_ecf5d96ae1394088 =
+  BG.fromFFIType hs_bindgen_ecf5d96ae1394088_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_cmpd_components@
+
+    __defined at:__ @libheif\/heif_image_handle.h 142:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_cmpd_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_cmpd_components =
+  hs_bindgen_ecf5d96ae1394088
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type@
+foreign import ccall safe "hs_bindgen_c39b365ae6463988" hs_bindgen_c39b365ae6463988_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type@
+hs_bindgen_c39b365ae6463988 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_c39b365ae6463988 =
+  BG.fromFFIType hs_bindgen_c39b365ae6463988_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_image_handle.h 147:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_cmpd_component_type =
+  hs_bindgen_c39b365ae6463988
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type_uri@
+foreign import ccall safe "hs_bindgen_df63ee961806d207" hs_bindgen_df63ee961806d207_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type_uri@
+hs_bindgen_df63ee961806d207 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_df63ee961806d207 =
+  BG.fromFFIType hs_bindgen_df63ee961806d207_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type_uri@
+
+    __defined at:__ @libheif\/heif_image_handle.h 153:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type_uri ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_cmpd_component_type_uri =
+  hs_bindgen_df63ee961806d207
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_gimi_component_content_ids@
+foreign import ccall safe "hs_bindgen_6a5a1af4a8a1b33e" hs_bindgen_6a5a1af4a8a1b33e_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_gimi_component_content_ids@
+hs_bindgen_6a5a1af4a8a1b33e ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_6a5a1af4a8a1b33e =
+  BG.fromFFIType hs_bindgen_6a5a1af4a8a1b33e_base
+
+{-| __C declaration:__ @heif_image_handle_has_gimi_component_content_ids@
+
+    __defined at:__ @libheif\/heif_image_handle.h 160:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_gimi_component_content_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_gimi_component_content_ids =
+  hs_bindgen_6a5a1af4a8a1b33e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_component_content_id@
+foreign import ccall safe "hs_bindgen_a39896583d9d4999" hs_bindgen_a39896583d9d4999_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_component_content_id@
+hs_bindgen_a39896583d9d4999 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_a39896583d9d4999 =
+  BG.fromFFIType hs_bindgen_a39896583d9d4999_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 166:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_component_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_component_content_id =
+  hs_bindgen_a39896583d9d4999
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_component_content_id@
+foreign import ccall safe "hs_bindgen_dacd0cb9d512c937" hs_bindgen_dacd0cb9d512c937_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_component_content_id@
+hs_bindgen_dacd0cb9d512c937 ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_dacd0cb9d512c937 =
+  BG.fromFFIType hs_bindgen_dacd0cb9d512c937_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_component_content_id ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_component_content_id =
+  hs_bindgen_dacd0cb9d512c937
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_image_tiling@
+foreign import ccall safe "hs_bindgen_898454a03bf14ab5" hs_bindgen_898454a03bf14ab5_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_image_tiling@
+hs_bindgen_898454a03bf14ab5 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_image_tiling
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_898454a03bf14ab5 =
+  BG.fromFFIType hs_bindgen_898454a03bf14ab5_base
+
+{-| __C declaration:__ @heif_image_handle_get_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 67:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_image_tiling ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> BG.Ptr Heif_image_tiling
+     -- ^ __C declaration:__ @out_tiling@
+  -> IO Heif_error
+heif_image_handle_get_image_tiling =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \out_tiling2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_898454a03bf14ab5 handle0 process_image_transformations1 out_tiling2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_grid_image_tile_id@
+foreign import ccall safe "hs_bindgen_413be3dbf7649192" hs_bindgen_413be3dbf7649192_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_grid_image_tile_id@
+hs_bindgen_413be3dbf7649192 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_413be3dbf7649192 =
+  BG.fromFFIType hs_bindgen_413be3dbf7649192_base
+
+{-| __C declaration:__ @heif_image_handle_get_grid_image_tile_id@
+
+    __defined at:__ @libheif\/heif_tiling.h 74:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_grid_image_tile_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_tile_item_id@
+  -> IO Heif_error
+heif_image_handle_get_grid_image_tile_id =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \out_tile_item_id4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_413be3dbf7649192 handle0 process_image_transformations1 tile_x2 tile_y3 out_tile_item_id4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_decode_image_tile@
+foreign import ccall safe "hs_bindgen_f101837a6b5be78b" hs_bindgen_f101837a6b5be78b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_decode_image_tile@
+hs_bindgen_f101837a6b5be78b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f101837a6b5be78b =
+  BG.fromFFIType hs_bindgen_f101837a6b5be78b_base
+
+{-| __C declaration:__ @heif_image_handle_decode_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 86:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_decode_image_tile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> IO Heif_error
+heif_image_handle_decode_image_tile =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            \tile_x5 ->
+              \tile_y6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_f101837a6b5be78b in_handle0 out_img1 colorspace2 chroma3 options4 tile_x5 tile_y6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_grid@
+foreign import ccall safe "hs_bindgen_164a168311e3f152" hs_bindgen_164a168311e3f152_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_grid@
+hs_bindgen_164a168311e3f152 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> HsBindgen.Runtime.LibC.Word16
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_164a168311e3f152 =
+  BG.fromFFIType hs_bindgen_164a168311e3f152_base
+
+{-| __C declaration:__ @heif_context_encode_grid@
+
+    __defined at:__ @libheif\/heif_tiling.h 109:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_grid ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @tiles@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @rows@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @columns@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @input_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_grid =
+  \ctx0 ->
+    \tiles1 ->
+      \rows2 ->
+        \columns3 ->
+          \encoder4 ->
+            \input_options5 ->
+              \out_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_164a168311e3f152 ctx0 tiles1 rows2 columns3 encoder4 input_options5 out_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_grid_image@
+foreign import ccall safe "hs_bindgen_7c8ae7abdb656611" hs_bindgen_7c8ae7abdb656611_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_grid_image@
+hs_bindgen_7c8ae7abdb656611 ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7c8ae7abdb656611 =
+  BG.fromFFIType hs_bindgen_7c8ae7abdb656611_base
+
+{-| __C declaration:__ @heif_context_add_grid_image@
+
+    __defined at:__ @libheif\/heif_tiling.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_grid_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_columns@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_rows@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @encoding_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_grid_image_handle@
+  -> IO Heif_error
+heif_context_add_grid_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \tile_columns3 ->
+          \tile_rows4 ->
+            \encoding_options5 ->
+              \out_grid_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_7c8ae7abdb656611 ctx0 image_width1 image_height2 tile_columns3 tile_rows4 encoding_options5 out_grid_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_image_tile@
+foreign import ccall safe "hs_bindgen_03065a3517ed4b58" hs_bindgen_03065a3517ed4b58_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_image_tile@
+hs_bindgen_03065a3517ed4b58 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_03065a3517ed4b58 =
+  BG.fromFFIType hs_bindgen_03065a3517ed4b58_base
+
+{-| __C declaration:__ @heif_context_add_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 127:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_image_tile ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @tiled_image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> IO Heif_error
+heif_context_add_image_tile =
+  \ctx0 ->
+    \tiled_image1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \image4 ->
+            \encoder5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_03065a3517ed4b58 ctx0 tiled_image1 tile_x2 tile_y3 image4 encoder5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_number_of_used_components@
+foreign import ccall safe "hs_bindgen_4c8ac68e14c896d9" hs_bindgen_4c8ac68e14c896d9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_number_of_used_components@
+hs_bindgen_4c8ac68e14c896d9 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_4c8ac68e14c896d9 =
+  BG.fromFFIType hs_bindgen_4c8ac68e14c896d9_base
+
+{-| __C declaration:__ @heif_image_get_number_of_used_components@
+
+    __defined at:__ @libheif\/heif_components.h 96:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_number_of_used_components ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_number_of_used_components =
+  hs_bindgen_4c8ac68e14c896d9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_used_component_ids@
+foreign import ccall safe "hs_bindgen_89f9c71152d117b0" hs_bindgen_89f9c71152d117b0_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_used_component_ids@
+hs_bindgen_89f9c71152d117b0 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_89f9c71152d117b0 =
+  BG.fromFFIType hs_bindgen_89f9c71152d117b0_base
+
+{-| __C declaration:__ @heif_image_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 101:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_get_used_component_ids =
+  hs_bindgen_89f9c71152d117b0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_channel@
+foreign import ccall safe "hs_bindgen_95adbac0d70eaf89" hs_bindgen_95adbac0d70eaf89_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_channel@
+hs_bindgen_95adbac0d70eaf89 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_channel
+hs_bindgen_95adbac0d70eaf89 =
+  BG.fromFFIType hs_bindgen_95adbac0d70eaf89_base
+
+{-| __C declaration:__ @heif_image_get_component_channel@
+
+    __defined at:__ @libheif\/heif_components.h 104:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_channel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_channel
+heif_image_get_component_channel =
+  hs_bindgen_95adbac0d70eaf89
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_width@
+foreign import ccall safe "hs_bindgen_2563edac91916690" hs_bindgen_2563edac91916690_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_width@
+hs_bindgen_2563edac91916690 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_2563edac91916690 =
+  BG.fromFFIType hs_bindgen_2563edac91916690_base
+
+{-| __C declaration:__ @heif_image_get_component_width@
+
+    __defined at:__ @libheif\/heif_components.h 107:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_width ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_width =
+  hs_bindgen_2563edac91916690
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_height@
+foreign import ccall safe "hs_bindgen_708542ac3769da22" hs_bindgen_708542ac3769da22_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_height@
+hs_bindgen_708542ac3769da22 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_708542ac3769da22 =
+  BG.fromFFIType hs_bindgen_708542ac3769da22_base
+
+{-| __C declaration:__ @heif_image_get_component_height@
+
+    __defined at:__ @libheif\/heif_components.h 110:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_height ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_height =
+  hs_bindgen_708542ac3769da22
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_24cce2d768157520" hs_bindgen_24cce2d768157520_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_bits_per_pixel@
+hs_bindgen_24cce2d768157520 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_24cce2d768157520 =
+  BG.fromFFIType hs_bindgen_24cce2d768157520_base
+
+{-| __C declaration:__ @heif_image_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_get_component_bits_per_pixel =
+  hs_bindgen_24cce2d768157520
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_type@
+foreign import ccall safe "hs_bindgen_1b3bc84f810e6784" hs_bindgen_1b3bc84f810e6784_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_type@
+hs_bindgen_1b3bc84f810e6784 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_1b3bc84f810e6784 =
+  BG.fromFFIType hs_bindgen_1b3bc84f810e6784_base
+
+{-| __C declaration:__ @heif_image_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 116:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_type ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_get_component_type =
+  hs_bindgen_1b3bc84f810e6784
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_datatype@
+foreign import ccall safe "hs_bindgen_3427ead05335058d" hs_bindgen_3427ead05335058d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_datatype@
+hs_bindgen_3427ead05335058d ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_3427ead05335058d =
+  BG.fromFFIType hs_bindgen_3427ead05335058d_base
+
+{-| __C declaration:__ @heif_image_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 121:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_datatype ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_get_component_datatype =
+  hs_bindgen_3427ead05335058d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_components@
+foreign import ccall safe "hs_bindgen_08e2626fbb4c7263" hs_bindgen_08e2626fbb4c7263_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_components@
+hs_bindgen_08e2626fbb4c7263 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_08e2626fbb4c7263 =
+  BG.fromFFIType hs_bindgen_08e2626fbb4c7263_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_components@
+
+    __defined at:__ @libheif\/heif_components.h 136:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_components =
+  hs_bindgen_08e2626fbb4c7263
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_used_component_ids@
+foreign import ccall safe "hs_bindgen_8f4c6fe1328df951" hs_bindgen_8f4c6fe1328df951_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_used_component_ids@
+hs_bindgen_8f4c6fe1328df951 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_8f4c6fe1328df951 =
+  BG.fromFFIType hs_bindgen_8f4c6fe1328df951_base
+
+{-| __C declaration:__ @heif_image_handle_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 142:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_handle_get_used_component_ids =
+  hs_bindgen_8f4c6fe1328df951
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_type@
+foreign import ccall safe "hs_bindgen_da1741b447f6b55f" hs_bindgen_da1741b447f6b55f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_type@
+hs_bindgen_da1741b447f6b55f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_da1741b447f6b55f =
+  BG.fromFFIType hs_bindgen_da1741b447f6b55f_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 145:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_component_type =
+  hs_bindgen_da1741b447f6b55f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_c06a69cd444c0e91" hs_bindgen_c06a69cd444c0e91_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_bits_per_pixel@
+hs_bindgen_c06a69cd444c0e91 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_c06a69cd444c0e91 =
+  BG.fromFFIType hs_bindgen_c06a69cd444c0e91_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_handle_get_component_bits_per_pixel =
+  hs_bindgen_c06a69cd444c0e91
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_datatype@
+foreign import ccall safe "hs_bindgen_246e8aac86313c19" hs_bindgen_246e8aac86313c19_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_datatype@
+hs_bindgen_246e8aac86313c19 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_246e8aac86313c19 =
+  BG.fromFFIType hs_bindgen_246e8aac86313c19_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 151:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_datatype ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_handle_get_component_datatype =
+  hs_bindgen_246e8aac86313c19
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_component@
+foreign import ccall safe "hs_bindgen_58211ee9d9aaff0b" hs_bindgen_58211ee9d9aaff0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Word16
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_component@
+hs_bindgen_58211ee9d9aaff0b ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word16
+  -> Heif_component_datatype
+  -> BG.CInt
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_58211ee9d9aaff0b =
+  BG.fromFFIType hs_bindgen_58211ee9d9aaff0b_base
+
+{-| __C declaration:__ @heif_image_add_component@
+
+    __defined at:__ @libheif\/heif_components.h 157:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_component ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @component_type@
+  -> Heif_component_datatype
+     -- ^ __C declaration:__ @datatype@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_id@
+  -> IO Heif_error
+heif_image_add_component =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        \component_type3 ->
+          \datatype4 ->
+            \bit_depth5 ->
+              \out_component_id6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_58211ee9d9aaff0b image0 width1 height2 component_type3 datatype4 bit_depth5 out_component_id6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_readonly@
+foreign import ccall safe "hs_bindgen_f3b3dd6d12db8090" hs_bindgen_f3b3dd6d12db8090_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_readonly@
+hs_bindgen_f3b3dd6d12db8090 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_f3b3dd6d12db8090 =
+  BG.fromFFIType hs_bindgen_f3b3dd6d12db8090_base
+
+{-| __C declaration:__ @heif_image_get_component_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 168:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component_readonly =
+  hs_bindgen_f3b3dd6d12db8090
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component@
+foreign import ccall safe "hs_bindgen_797598038668dd27" hs_bindgen_797598038668dd27_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component@
+hs_bindgen_797598038668dd27 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_797598038668dd27 =
+  BG.fromFFIType hs_bindgen_797598038668dd27_base
+
+{-| __C declaration:__ @heif_image_get_component@
+
+    __defined at:__ @libheif\/heif_components.h 171:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component =
+  hs_bindgen_797598038668dd27
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16_readonly@
+foreign import ccall safe "hs_bindgen_dd2caf5774deaa63" hs_bindgen_dd2caf5774deaa63_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16_readonly@
+hs_bindgen_dd2caf5774deaa63 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_dd2caf5774deaa63 =
+  BG.fromFFIType hs_bindgen_dd2caf5774deaa63_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 180:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16_readonly =
+  hs_bindgen_dd2caf5774deaa63
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16@
+foreign import ccall safe "hs_bindgen_c24b1fb221a59544" hs_bindgen_c24b1fb221a59544_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16@
+hs_bindgen_c24b1fb221a59544 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_c24b1fb221a59544 =
+  BG.fromFFIType hs_bindgen_c24b1fb221a59544_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16@
+
+    __defined at:__ @libheif\/heif_components.h 183:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16 =
+  hs_bindgen_c24b1fb221a59544
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32_readonly@
+foreign import ccall safe "hs_bindgen_f7092ec4941635e4" hs_bindgen_f7092ec4941635e4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32_readonly@
+hs_bindgen_f7092ec4941635e4 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_f7092ec4941635e4 =
+  BG.fromFFIType hs_bindgen_f7092ec4941635e4_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 186:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32_readonly =
+  hs_bindgen_f7092ec4941635e4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32@
+foreign import ccall safe "hs_bindgen_b69a8682c27eebbe" hs_bindgen_b69a8682c27eebbe_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32@
+hs_bindgen_b69a8682c27eebbe ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_b69a8682c27eebbe =
+  BG.fromFFIType hs_bindgen_b69a8682c27eebbe_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32@
+
+    __defined at:__ @libheif\/heif_components.h 189:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32 =
+  hs_bindgen_b69a8682c27eebbe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64_readonly@
+foreign import ccall safe "hs_bindgen_21af790d31a25679" hs_bindgen_21af790d31a25679_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64_readonly@
+hs_bindgen_21af790d31a25679 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_21af790d31a25679 =
+  BG.fromFFIType hs_bindgen_21af790d31a25679_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 192:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64_readonly =
+  hs_bindgen_21af790d31a25679
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64@
+foreign import ccall safe "hs_bindgen_052a1b04a5028cc7" hs_bindgen_052a1b04a5028cc7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64@
+hs_bindgen_052a1b04a5028cc7 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_052a1b04a5028cc7 =
+  BG.fromFFIType hs_bindgen_052a1b04a5028cc7_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64@
+
+    __defined at:__ @libheif\/heif_components.h 195:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64 =
+  hs_bindgen_052a1b04a5028cc7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8_readonly@
+foreign import ccall safe "hs_bindgen_0647bc125c518139" hs_bindgen_0647bc125c518139_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8_readonly@
+hs_bindgen_0647bc125c518139 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_0647bc125c518139 =
+  BG.fromFFIType hs_bindgen_0647bc125c518139_base
+
+{-| __C declaration:__ @heif_image_get_component_int8_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 198:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8_readonly =
+  hs_bindgen_0647bc125c518139
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8@
+foreign import ccall safe "hs_bindgen_2b6baabe97efc9ee" hs_bindgen_2b6baabe97efc9ee_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8@
+hs_bindgen_2b6baabe97efc9ee ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_2b6baabe97efc9ee =
+  BG.fromFFIType hs_bindgen_2b6baabe97efc9ee_base
+
+{-| __C declaration:__ @heif_image_get_component_int8@
+
+    __defined at:__ @libheif\/heif_components.h 201:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8 =
+  hs_bindgen_2b6baabe97efc9ee
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16_readonly@
+foreign import ccall safe "hs_bindgen_05cd3db068fb993a" hs_bindgen_05cd3db068fb993a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16_readonly@
+hs_bindgen_05cd3db068fb993a ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_05cd3db068fb993a =
+  BG.fromFFIType hs_bindgen_05cd3db068fb993a_base
+
+{-| __C declaration:__ @heif_image_get_component_int16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 204:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16_readonly =
+  hs_bindgen_05cd3db068fb993a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16@
+foreign import ccall safe "hs_bindgen_3a8ffa58a1670f46" hs_bindgen_3a8ffa58a1670f46_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16@
+hs_bindgen_3a8ffa58a1670f46 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_3a8ffa58a1670f46 =
+  BG.fromFFIType hs_bindgen_3a8ffa58a1670f46_base
+
+{-| __C declaration:__ @heif_image_get_component_int16@
+
+    __defined at:__ @libheif\/heif_components.h 207:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16 =
+  hs_bindgen_3a8ffa58a1670f46
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32_readonly@
+foreign import ccall safe "hs_bindgen_f59a29fdf460e965" hs_bindgen_f59a29fdf460e965_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32_readonly@
+hs_bindgen_f59a29fdf460e965 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_f59a29fdf460e965 =
+  BG.fromFFIType hs_bindgen_f59a29fdf460e965_base
+
+{-| __C declaration:__ @heif_image_get_component_int32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 210:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32_readonly =
+  hs_bindgen_f59a29fdf460e965
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32@
+foreign import ccall safe "hs_bindgen_80e3e994059d8dc9" hs_bindgen_80e3e994059d8dc9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32@
+hs_bindgen_80e3e994059d8dc9 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_80e3e994059d8dc9 =
+  BG.fromFFIType hs_bindgen_80e3e994059d8dc9_base
+
+{-| __C declaration:__ @heif_image_get_component_int32@
+
+    __defined at:__ @libheif\/heif_components.h 213:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32 =
+  hs_bindgen_80e3e994059d8dc9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64_readonly@
+foreign import ccall safe "hs_bindgen_9f7c83bd2e97ad43" hs_bindgen_9f7c83bd2e97ad43_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64_readonly@
+hs_bindgen_9f7c83bd2e97ad43 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_9f7c83bd2e97ad43 =
+  BG.fromFFIType hs_bindgen_9f7c83bd2e97ad43_base
+
+{-| __C declaration:__ @heif_image_get_component_int64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 216:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64_readonly =
+  hs_bindgen_9f7c83bd2e97ad43
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64@
+foreign import ccall safe "hs_bindgen_fee1de1a1474b6a3" hs_bindgen_fee1de1a1474b6a3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64@
+hs_bindgen_fee1de1a1474b6a3 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_fee1de1a1474b6a3 =
+  BG.fromFFIType hs_bindgen_fee1de1a1474b6a3_base
+
+{-| __C declaration:__ @heif_image_get_component_int64@
+
+    __defined at:__ @libheif\/heif_components.h 219:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64 =
+  hs_bindgen_fee1de1a1474b6a3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32_readonly@
+foreign import ccall safe "hs_bindgen_05ed1c08b5116807" hs_bindgen_05ed1c08b5116807_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32_readonly@
+hs_bindgen_05ed1c08b5116807 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CFloat)
+hs_bindgen_05ed1c08b5116807 =
+  BG.fromFFIType hs_bindgen_05ed1c08b5116807_base
+
+{-| __C declaration:__ @heif_image_get_component_float32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 222:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CFloat)
+heif_image_get_component_float32_readonly =
+  hs_bindgen_05ed1c08b5116807
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32@
+foreign import ccall safe "hs_bindgen_ad009c9ed1ffc812" hs_bindgen_ad009c9ed1ffc812_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32@
+hs_bindgen_ad009c9ed1ffc812 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CFloat)
+hs_bindgen_ad009c9ed1ffc812 =
+  BG.fromFFIType hs_bindgen_ad009c9ed1ffc812_base
+
+{-| __C declaration:__ @heif_image_get_component_float32@
+
+    __defined at:__ @libheif\/heif_components.h 225:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CFloat)
+heif_image_get_component_float32 =
+  hs_bindgen_ad009c9ed1ffc812
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64_readonly@
+foreign import ccall safe "hs_bindgen_de66df56dbf48814" hs_bindgen_de66df56dbf48814_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64_readonly@
+hs_bindgen_de66df56dbf48814 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CDouble)
+hs_bindgen_de66df56dbf48814 =
+  BG.fromFFIType hs_bindgen_de66df56dbf48814_base
+
+{-| __C declaration:__ @heif_image_get_component_float64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 228:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CDouble)
+heif_image_get_component_float64_readonly =
+  hs_bindgen_de66df56dbf48814
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64@
+foreign import ccall safe "hs_bindgen_0ad1b60eeb8d63bd" hs_bindgen_0ad1b60eeb8d63bd_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64@
+hs_bindgen_0ad1b60eeb8d63bd ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CDouble)
+hs_bindgen_0ad1b60eeb8d63bd =
+  BG.fromFFIType hs_bindgen_0ad1b60eeb8d63bd_base
+
+{-| __C declaration:__ @heif_image_get_component_float64@
+
+    __defined at:__ @libheif\/heif_components.h 231:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CDouble)
+heif_image_get_component_float64 =
+  hs_bindgen_0ad1b60eeb8d63bd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32_readonly@
+foreign import ccall safe "hs_bindgen_ac4a57dd34ca375a" hs_bindgen_ac4a57dd34ca375a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32_readonly@
+hs_bindgen_ac4a57dd34ca375a ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex32)
+hs_bindgen_ac4a57dd34ca375a =
+  BG.fromFFIType hs_bindgen_ac4a57dd34ca375a_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 234:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex32)
+heif_image_get_component_complex32_readonly =
+  hs_bindgen_ac4a57dd34ca375a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32@
+foreign import ccall safe "hs_bindgen_cfa79a05b01a8fc7" hs_bindgen_cfa79a05b01a8fc7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32@
+hs_bindgen_cfa79a05b01a8fc7 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex32)
+hs_bindgen_cfa79a05b01a8fc7 =
+  BG.fromFFIType hs_bindgen_cfa79a05b01a8fc7_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 237:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex32)
+heif_image_get_component_complex32 =
+  hs_bindgen_cfa79a05b01a8fc7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64_readonly@
+foreign import ccall safe "hs_bindgen_e0f8d25e700e39b7" hs_bindgen_e0f8d25e700e39b7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64_readonly@
+hs_bindgen_e0f8d25e700e39b7 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex64)
+hs_bindgen_e0f8d25e700e39b7 =
+  BG.fromFFIType hs_bindgen_e0f8d25e700e39b7_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 240:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex64)
+heif_image_get_component_complex64_readonly =
+  hs_bindgen_e0f8d25e700e39b7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64@
+foreign import ccall safe "hs_bindgen_378fc308bf4e003a" hs_bindgen_378fc308bf4e003a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64@
+hs_bindgen_378fc308bf4e003a ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex64)
+hs_bindgen_378fc308bf4e003a =
+  BG.fromFFIType hs_bindgen_378fc308bf4e003a_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 243:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex64)
+heif_image_get_component_complex64 =
+  hs_bindgen_378fc308bf4e003a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_gimi_component_content_id@
+foreign import ccall safe "hs_bindgen_430d40ab533188ef" hs_bindgen_430d40ab533188ef_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_gimi_component_content_id@
+hs_bindgen_430d40ab533188ef ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_430d40ab533188ef =
+  BG.fromFFIType hs_bindgen_430d40ab533188ef_base
+
+{-| __C declaration:__ @heif_image_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_components.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_gimi_component_content_id ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO Heif_error
+heif_image_set_gimi_component_content_id =
+  \x0 ->
+    \component_id1 ->
+      \content_id2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_430d40ab533188ef x0 component_id1 content_id2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_dc0b57c80dcd5111" hs_bindgen_dc0b57c80dcd5111_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_omaf_image_projection@
+hs_bindgen_dc0b57c80dcd5111 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_omaf_image_projection
+hs_bindgen_dc0b57c80dcd5111 =
+  BG.fromFFIType hs_bindgen_dc0b57c80dcd5111_base
+
+{-| __C declaration:__ @heif_image_handle_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 83:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_omaf_image_projection
+heif_image_handle_get_omaf_image_projection =
+  hs_bindgen_dc0b57c80dcd5111
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_c2c7dbcbc67f17cb" hs_bindgen_c2c7dbcbc67f17cb_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_omaf_image_projection@
+hs_bindgen_c2c7dbcbc67f17cb ::
+     BG.Ptr Heif_image_handle
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_c2c7dbcbc67f17cb =
+  BG.fromFFIType hs_bindgen_c2c7dbcbc67f17cb_base
+
+{-| __C declaration:__ @heif_image_handle_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 86:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_omaf_image_projection ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_handle_set_omaf_image_projection =
+  hs_bindgen_c2c7dbcbc67f17cb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_78b31f0f9d6a835b" hs_bindgen_78b31f0f9d6a835b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_omaf_image_projection@
+hs_bindgen_78b31f0f9d6a835b ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_omaf_image_projection
+hs_bindgen_78b31f0f9d6a835b =
+  BG.fromFFIType hs_bindgen_78b31f0f9d6a835b_base
+
+{-| __C declaration:__ @heif_image_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 94:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_omaf_image_projection
+heif_image_get_omaf_image_projection =
+  hs_bindgen_78b31f0f9d6a835b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_88e80c816c94bac9" hs_bindgen_88e80c816c94bac9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_omaf_image_projection@
+hs_bindgen_88e80c816c94bac9 ::
+     BG.Ptr Heif_image
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_88e80c816c94bac9 =
+  BG.fromFFIType hs_bindgen_88e80c816c94bac9_base
+
+{-| __C declaration:__ @heif_image_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 97:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_omaf_image_projection ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_set_omaf_image_projection =
+  hs_bindgen_88e80c816c94bac9
diff --git a/src-native/Codec/HEIF/Bindings/Generated/Unsafe.hs b/src-native/Codec/HEIF/Bindings/Generated/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/src-native/Codec/HEIF/Bindings/Generated/Unsafe.hs
@@ -0,0 +1,11179 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.Unsafe
+    ( Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number_major
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number_minor
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number_maintenance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_string_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_init
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_deinit
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_load_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_load_plugins
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_unload_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_free_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_register_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_register_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_register_decoder
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_colorspace
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_chroma_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_primary_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_primary_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_crop
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_extract_area
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_bits_per_pixel_range
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_channel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane_readonly2
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane2
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_scale_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_extend_to_size_fill_with_zero
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_decoding_warnings
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_decoding_warning
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_create
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_plane
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_plane_safe
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_extend_padding_to_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_set_defaults
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_ext_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_ext_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_ext_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_set_color_primaries
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_set_transfer_characteristics
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_set_matrix_coefficients
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_mastering_display_colour_volume_decode
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_read_main_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_read_minor_version_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_fourcc_to_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_brand_to_fourcc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_has_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_list_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_free_list_of_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_file_mime_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_check_filetype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_has_compatible_filetype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_check_jpeg_filetype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_main_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_metadata_compression_method_supported
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_metadata_blocks
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_metadata_block_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_content_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_item_uri_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_exif_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_XMP_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_XMP_metadata2
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_generic_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_generic_uri_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_depth_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_depth_images
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_depth_image_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_depth_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_depth_representation_info_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_depth_image_representation_info
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_thumbnails
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_thumbnail_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_thumbnail
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_encode_thumbnail
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_assign_thumbnail
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_auxiliary_images
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_auxiliary_image_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_release_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_auxiliary_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_free_auxiliary_types
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_entity_groups
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_entity_groups_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_global_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_disabled_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_maximum_image_size_limit
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_file
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_memory
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_memory_without_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_reader
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_number_of_top_level_images
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_is_top_level_image_ID
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_list_of_top_level_image_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_primary_image_ID
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_primary_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_debug_dump_boxes_to_file
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_write_mini_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_write_to_file
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_write
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_have_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_get_compression_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supports_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supports_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_encoder
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_lossy_quality
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_lossless
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_logging_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_list_parameters
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_valid_integer_range
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_valid_integer_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_valid_string_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_integer_valid_range
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter_string
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter_string
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_string_valid_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_integer_valid_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_has_default
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_orientation_concat
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoding_options_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_encode_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_overlay_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_primary_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_major_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_unif
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supportes_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supportes_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_have_decoder_for_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoding_options_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_decoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decode_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_is_primary_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_item_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_alpha_channel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_luma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_chroma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_preferred_decoding_colorspace
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_ispe_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_ispe_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_context
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_cmpd_components
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_cmpd_component_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_cmpd_component_type_uri
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_gimi_component_content_ids
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_image_tiling
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_grid_image_tile_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_decode_image_tile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_encode_grid
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_grid_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_image_tile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_number_of_used_components
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_channel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_components
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_component_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_component
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint16_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint16
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int8_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int8
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int16_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int16
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_omaf_image_projection
+    )
+  where
+
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.IsArray as IsA
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "char const *hs_bindgen_e3bffa314a90058b (void)"
+  , "{"
+  , "  return (heif_get_version)();"
+  , "}"
+  , "uint32_t hs_bindgen_5ac80c1443aa4448 (void)"
+  , "{"
+  , "  return (heif_get_version_number)();"
+  , "}"
+  , "signed int hs_bindgen_55e4521e93626126 (void)"
+  , "{"
+  , "  return (heif_get_version_number_major)();"
+  , "}"
+  , "signed int hs_bindgen_145a4f240219e0a9 (void)"
+  , "{"
+  , "  return (heif_get_version_number_minor)();"
+  , "}"
+  , "signed int hs_bindgen_58fbe8d31194675b (void)"
+  , "{"
+  , "  return (heif_get_version_number_maintenance)();"
+  , "}"
+  , "void hs_bindgen_5305381a834858f6 ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_string_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_c6cf67a7df25bdec ("
+  , "  heif_init_params *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_init)(arg1);"
+  , "}"
+  , "void hs_bindgen_e1615a4fb170ecfe (void)"
+  , "{"
+  , "  (heif_deinit)();"
+  , "}"
+  , "void hs_bindgen_7e4ae8064e7fa414 ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_load_plugin)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8d1c6ca731acead9 ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  signed int *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_load_plugins)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_538500d1fad0b893 ("
+  , "  heif_plugin_info const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_unload_plugin)(arg1);"
+  , "}"
+  , "char const *const *hs_bindgen_9ed471f495e48c49 (void)"
+  , "{"
+  , "  return (heif_get_plugin_directories)();"
+  , "}"
+  , "void hs_bindgen_9d2405417393e657 ("
+  , "  char const *const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_plugin_directories)(arg1);"
+  , "}"
+  , "void hs_bindgen_835dc3bcc6b1f285 ("
+  , "  heif_decoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_decoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_12b9be4adedf03bd ("
+  , "  heif_encoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_encoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_5f60338dadf21f69 ("
+  , "  heif_context *arg1,"
+  , "  heif_decoder_plugin const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_register_decoder)(arg1, arg2);"
+  , "}"
+  , "heif_colorspace hs_bindgen_6eefe02d29f57a47 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_colorspace)(arg1);"
+  , "}"
+  , "heif_chroma hs_bindgen_53faf2b1fc8a2156 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_chroma_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e633bfc0672b32e7 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_width)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_c0cbbfe9b797da51 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_c79ddf7426928ec2 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fc1202e0c5cd3d09 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_height)(arg1);"
+  , "}"
+  , "void hs_bindgen_298d1d9ee3c4f3f2 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_crop)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_9fd687f6d6aa62dc ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_image **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_extract_area)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "signed int hs_bindgen_4c57056151b51120 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_740f2cdd311ad0b7 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel_range)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_682212294f338906 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_channel)(arg1, arg2);"
+  , "}"
+  , "uint8_t const *hs_bindgen_5037c6505fb52d39 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_1f037f5c1d43593b ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t const *hs_bindgen_f7454f02bed93ef8 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly2)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_4a13b7033c17548d ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane2)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_cd8be1577d7b3a2b ("
+  , "  heif_image const *arg1,"
+  , "  heif_image **arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  heif_scaling_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_scale_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_f994012d02172f02 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_to_size_fill_with_zero)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_591b95f3625fb1f3 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_decoding_warnings)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_e0050d3b1bf5d002 ("
+  , "  heif_image *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_add_decoding_warning)(arg1, *arg2);"
+  , "}"
+  , "void hs_bindgen_f8b0209a7ec37965 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_58b6b25baf69f6bb ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_64ef88c5f4227050 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_1021dce469e1b127 ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e6de35774b2629f8 ("
+  , "  signed int arg1,"
+  , "  signed int arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_image **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_create)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_ded84e4fb2693ccb ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_add_plane)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_14c07f3c95c4d2a1 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_image_add_plane_safe)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_0cb37fdfaf80d23d ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_premultiplied_alpha)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_95281e4bf5195e90 ("
+  , "  heif_image *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "void hs_bindgen_e7bd2b9f79bce485 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_padding_to_size)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_fa886f69180c9b13 ("
+  , "  heif_color_conversion_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_set_defaults)(arg1);"
+  , "}"
+  , "heif_color_conversion_options_ext *hs_bindgen_3498384f565db0bf (void)"
+  , "{"
+  , "  return (heif_color_conversion_options_ext_alloc)();"
+  , "}"
+  , "void hs_bindgen_a5a41101b51031e5 ("
+  , "  heif_color_conversion_options_ext *arg1,"
+  , "  heif_color_conversion_options_ext const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b151c814d468583c ("
+  , "  heif_color_conversion_options_ext *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_3d62c61f9da0c21f ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_e524b9c333f3e6f9 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_df7ddd74d35a1d70 ("
+  , "  heif_image_handle const *arg1,"
+  , "  void *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_9bd2c76f24a46069 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_color_primaries)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_55f3e8ab84a6b8ef ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_transfer_characteristics)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8e5fd31a41ae1cdd ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_matrix_coefficients)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8546dd13ed062f1c ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "heif_color_profile_nclx *hs_bindgen_ae248e74768fcbe7 (void)"
+  , "{"
+  , "  return (heif_nclx_color_profile_alloc)();"
+  , "}"
+  , "void hs_bindgen_e5cdf6772bff08ab ("
+  , "  heif_color_profile_nclx *arg1"
+  , ")"
+  , "{"
+  , "  (heif_nclx_color_profile_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_698c659a583ecfcf ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_899b31b8f4d0b139 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_dd6958f1991911be ("
+  , "  heif_image const *arg1,"
+  , "  void *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_066842cfad9d7788 ("
+  , "  heif_image const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_e39706130308fb22 ("
+  , "  heif_image *arg1,"
+  , "  char const *arg2,"
+  , "  void const *arg3,"
+  , "  size_t const arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_image_set_raw_color_profile)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_c4e7050d9db10e9a ("
+  , "  heif_image *arg1,"
+  , "  heif_color_profile_nclx const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_set_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_be6ee6da0546d110 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_content_light_level)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d7e2ebf32ac53fac ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_content_light_level)(arg1);"
+  , "}"
+  , "void hs_bindgen_9d82218a99d2d392 ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_b6298e4a5fe44f46 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_1b896f9f9ad9433d ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_0fe67c68b9c30832 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_082b5ffbdb05d279 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fbcaca522f00d549 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "void hs_bindgen_26de052b332f6318 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_e82eb51924715179 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_ffad573ff1d2e1b4 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_e55ed00c652e3fea ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d6b8dd7ef6008c82 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e0f6f90369de190f ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_03f4b4f3734ca3eb ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_dd1f30e9a69dbd49 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_81030adb575665fe ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_13c2a075b1cf7bd8 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7dd186fbfd6b464a ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_edcedf5e2ff9fd31 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_a37f8bb02787e019 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_11ca3842cb553804 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_24cee4290ffa0920 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_4e00c9ca70a6fd07 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_9c0e93af53ba356a ("
+  , "  heif_mastering_display_colour_volume const *arg1,"
+  , "  heif_decoded_mastering_display_colour_volume *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_mastering_display_colour_volume_decode)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_cb3b0a44d4aad6a4 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_main_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_46a8a8e54f91d91a ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_minor_version_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_ec7439ef34aa82ca ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_fourcc_to_brand)(arg1);"
+  , "}"
+  , "void hs_bindgen_f3063904ab900b28 ("
+  , "  heif_brand2 arg1,"
+  , "  char *arg2"
+  , ")"
+  , "{"
+  , "  (heif_brand_to_fourcc)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_f9382ea7accf2318 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_has_compatible_brand)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_db37863ff0bc30e9 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_brand2 **arg3,"
+  , "  signed int *arg4,"
+  , "  struct heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_list_compatible_brands)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_0bf00e8ab2fd5553 ("
+  , "  heif_brand2 *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_list_of_compatible_brands)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_083f69c89da808ac ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_get_file_mime_type)(arg1, arg2);"
+  , "}"
+  , "enum heif_filetype_result hs_bindgen_2c11695134f8ae7a ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_filetype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_2e7bbe04a9324a3c ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_has_compatible_filetype)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_38f46e68912e8abc ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_jpeg_filetype)(arg1, arg2);"
+  , "}"
+  , "enum heif_brand hs_bindgen_fdd065dc05fa657e ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_main_brand)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_99b5ad50a3519f42 ("
+  , "  enum heif_metadata_compression arg1"
+  , ")"
+  , "{"
+  , "  return (heif_metadata_compression_method_supported)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ed1b3c7730ce9adc ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_metadata_blocks)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_ff545c340ebcc9e1 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_metadata_block_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_5b79154e3bf116be ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_93d17d0350046b0f ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_content_type)(arg1, arg2);"
+  , "}"
+  , "size_t hs_bindgen_e0031552d6b50a40 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_size)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_bf83eab617592597 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_metadata)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_2bda88c8a294819f ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_item_uri_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8cc5bc61773d6f99 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_exif_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_43ab7c8e6e51b6f6 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_XMP_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_690fe9f2d3331fbe ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  enum heif_metadata_compression arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_add_XMP_metadata2)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_43798e780a11e8ae ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  char const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_6f6e7853ece6bfaf ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  heif_item_id *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_uri_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "signed int hs_bindgen_ef96d03b5ecf889c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_depth_image)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_4c02e1b7273148ce ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_depth_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_46dac6a04d58d802 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_depth_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_530a9c047a8545b8 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_depth_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_029d797a2655b5de ("
+  , "  heif_depth_representation_info const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_depth_representation_info_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_a73687120cab3c71 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_depth_representation_info const **arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_depth_image_representation_info)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_3b94607899266366 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_thumbnails)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_12436f324557ab0b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_thumbnail_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_cbd2548e91d4b099 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d7fa83d73e654632 ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_encoder *arg4,"
+  , "  heif_encoding_options const *arg5,"
+  , "  signed int arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_thumbnail)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_b6b843db159f83b1 ("
+  , "  struct heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_assign_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_a07388633c39d124 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_auxiliary_images)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7826be70e6d91574 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_auxiliary_image_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_f6bf51713dbde24e ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_03aca62850d5d65f ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_38168275ff826772 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_auxiliary_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_6f5a921cd33ac8ee ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_free_auxiliary_types)(arg1, arg2);"
+  , "}"
+  , "heif_entity_group *hs_bindgen_ae6bb46cb10ef49b ("
+  , "  heif_context const *arg1,"
+  , "  uint32_t arg2,"
+  , "  heif_item_id arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_entity_groups)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_ccbaf41a25b5fc17 ("
+  , "  heif_entity_group *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_entity_groups_release)(arg1, arg2);"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_0bd62767a85d72e4 (void)"
+  , "{"
+  , "  return (heif_get_global_security_limits)();"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_1898bc2f36224985 (void)"
+  , "{"
+  , "  return (heif_get_disabled_security_limits)();"
+  , "}"
+  , "heif_security_limits *hs_bindgen_2a5ca5c742b8d454 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_security_limits)(arg1);"
+  , "}"
+  , "void hs_bindgen_8ac69b76d966cf30 ("
+  , "  heif_context *arg1,"
+  , "  heif_security_limits const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_security_limits)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_63f91ddf3fdf9157 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_maximum_image_size_limit)(arg1, arg2);"
+  , "}"
+  , "heif_context *hs_bindgen_5072fed60822f439 (void)"
+  , "{"
+  , "  return (heif_context_alloc)();"
+  , "}"
+  , "void hs_bindgen_d4224d2b144531cf ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  (heif_context_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_6a121ee485ba22bf ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_reading_options const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_read_from_file)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_174457bbb7c8bbd2 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_fcf75bd82a2068c9 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory_without_copy)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_30a7fb98ea82638e ("
+  , "  heif_context *arg1,"
+  , "  heif_reader const *arg2,"
+  , "  void *arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_reader)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_d022237e551807f9 ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_number_of_top_level_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_42c1e4344d442b11 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_context_is_top_level_image_ID)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_563deefc7bdc5b71 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_list_of_top_level_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e211461a4b3d3f0b ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_ID)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_47dc3223f11aefec ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_handle)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b49b56d6f03fcaf8 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_8d375594ebb1037b ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_debug_dump_boxes_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_64075557c6a39094 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_write_mini_format)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4fcabf8d41da421f ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_write_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_dcde2d838b9789eb ("
+  , "  heif_context *arg1,"
+  , "  heif_writer *arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_write)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_8b4419bc4eb2363d ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_encoder_for_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_20792e040c32e0e8 ("
+  , "  heif_compression_format arg1,"
+  , "  char const *arg2,"
+  , "  heif_encoder_descriptor const **arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_get_encoder_descriptors)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_7378a87d06f64c7f ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_32132b83ae93dd0d ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "heif_compression_format hs_bindgen_516b3c831a5935aa ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_compression_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_387691abb58c5a8c ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_c3eff547363f97b7 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossless_compression)(arg1);"
+  , "}"
+  , "void hs_bindgen_4c48d2c2a159ab39 ("
+  , "  heif_context *arg1,"
+  , "  heif_encoder_descriptor const *arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_5bab8f03475ec97b ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder_for_format)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_5be4df5257e0d63e ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoder_release)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_55e2efba5427c071 ("
+  , "  heif_encoder const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_get_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_9700eae02c9f1b08 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossy_quality)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_0d4543b236bd057c ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossless)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_528ef0518bd8ed17 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_logging_level)(arg1, arg2);"
+  , "}"
+  , "heif_encoder_parameter const *const *hs_bindgen_8ba729e891d005fb ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_list_parameters)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_0b37fad3bcbc1032 ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_name)(arg1);"
+  , "}"
+  , "enum heif_encoder_parameter_type hs_bindgen_effc6448978f082b ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_type)(arg1);"
+  , "}"
+  , "void hs_bindgen_9cc90071aaec91f3 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_parameter_get_valid_integer_range)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_050ff9ca987786fb ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int const **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_encoder_parameter_get_valid_integer_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_349b7bf99e396f16 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  char const *const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_parameter_get_valid_string_values)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_d653763347d1d09b ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_2ad63a212716469e ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d43bc70645423305 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_encoder_parameter_integer_valid_range)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_d8ed4c246561cc69 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_ca3fbaeda04e9582 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_908cf213e79a8290 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_string)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_7285de07553fd7c4 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter_string)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_67b0a8f7e96abb96 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *const **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_parameter_string_valid_values)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_837fd04e76a07e3c ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int *arg7,"
+  , "  signed int const **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_encoder_parameter_integer_valid_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_26a36653bf79dc5e ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_badf4585dea9cce8 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_5f05e81fb1017506 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_has_default)(arg1, arg2);"
+  , "}"
+  , "heif_orientation hs_bindgen_5de65368b622937b ("
+  , "  heif_orientation arg1,"
+  , "  heif_orientation arg2"
+  , ")"
+  , "{"
+  , "  return (heif_orientation_concat)(arg1, arg2);"
+  , "}"
+  , "heif_encoding_options *hs_bindgen_a63382036a0c2ed6 (void)"
+  , "{"
+  , "  return (heif_encoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_3a1ae325c063e780 ("
+  , "  heif_encoding_options *arg1,"
+  , "  heif_encoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7e49924263fcce32 ("
+  , "  heif_encoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_6ac3b36ffb994fd2 ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_encoder *arg3,"
+  , "  heif_encoding_options const *arg4,"
+  , "  heif_image_handle **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_encode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_1d9fc34edd017e95 ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_item_id const *arg5,"
+  , "  int32_t *arg6,"
+  , "  uint16_t const *arg7,"
+  , "  heif_image_handle **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_context_add_overlay_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_a78d763f0e72894b ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_primary_image)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7cfa31db45c6d2e0 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_major_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_53369da73974a5c8 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_add_compatible_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_ee19be3747255a78 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_unif)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_6aa908eebd2da1c7 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ae780e3f1353c894 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossless_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_2c76e06503a77574 ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  char const *arg3,"
+  , "  heif_encoder_descriptor const **arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_encoder_descriptors)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_87200925476eeec7 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_max_decoding_threads)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0c7154c9354fd286 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_max_decoding_threads)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_42f0650f86196b25 ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_decoder_for_format)(arg1);"
+  , "}"
+  , "heif_decoding_options *hs_bindgen_9c5874c5219718b8 (void)"
+  , "{"
+  , "  return (heif_decoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_3b86db3999f11506 ("
+  , "  heif_decoding_options *arg1,"
+  , "  heif_decoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_cf88ca791cd899fe ("
+  , "  heif_decoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ab1f907a34ddc140 ("
+  , "  heif_compression_format arg1,"
+  , "  heif_decoder_descriptor const **arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_get_decoder_descriptors)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_b5afa8de744aaab5 ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_7203e9b04a7a74dd ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_9c566de5c30f008a ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_decode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_28bf4adaa29e960b ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_9cd66a4acc781749 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_primary_image)(arg1);"
+  , "}"
+  , "heif_item_id hs_bindgen_883fc3dc3fc5532a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_item_id)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_0bcd25e50e8763ba ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_bd94a464a89cccfb ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_019a58dabf17e62f ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_alpha_channel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_07e4281a42d682d8 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_bd8920bbdfc607cb ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_luma_bits_per_pixel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_4a9b5e4f4022f165 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_chroma_bits_per_pixel)(arg1);"
+  , "}"
+  , "void hs_bindgen_5866c7e268ce84a7 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_colorspace *arg2,"
+  , "  heif_chroma *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_preferred_decoding_colorspace)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_4ac86f0a6dddfea5 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d6a6f34b63a7c18c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_5b65c4e9e89d0618 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_context *hs_bindgen_416f140cd405607c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_context)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_9d6713702978e3f4 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_content_id)(arg1);"
+  , "}"
+  , "void hs_bindgen_f107d82f17708377 ("
+  , "  heif_image_handle *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_content_id)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_d241b0dabaa4529a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_cmpd_components)(arg1);"
+  , "}"
+  , "uint16_t hs_bindgen_f849f5a5579d0d53 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_f0f8fe1e51403813 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type_uri)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_8f5d4dfd76b35269 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_gimi_component_content_ids)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_4c964b2acbe2715a ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_component_content_id)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b545cf8f497992ae ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_44591d28e788d50c ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  struct heif_image_tiling *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_image_tiling)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_aaf84ee2e27e5f15 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_item_id *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_handle_get_grid_image_tile_id)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_71d50457a2e7f14b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  uint32_t arg6,"
+  , "  uint32_t arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_handle_decode_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_b6f1896d3842bb1b ("
+  , "  heif_context *arg1,"
+  , "  heif_image **arg2,"
+  , "  uint16_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_encoder *arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_grid)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_c0099c7d4964643d ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_add_grid_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_188355cccd5fdf14 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_image const *arg5,"
+  , "  heif_encoder *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "uint32_t hs_bindgen_92d950ffdc2de847 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_number_of_used_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_50b42d71ed1d2033 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "heif_channel hs_bindgen_d7d8117bfd051b7c ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_channel)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_d27f543b4e39211d ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_width)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_a5924fcf635470b3 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_212a3558eb9bbb38 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_2a65608da4a96b45 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_type)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_5d0c49abeb7489aa ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_3e577779e550a986 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_3de5a3a45cf894db ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_a672d180928a4092 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_type)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d6755ff0da5d47f0 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_4b42fd1e2f6c1b06 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_97edbd3d5283c85d ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_component_datatype arg5,"
+  , "  signed int arg6,"
+  , "  uint32_t *arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_add_component)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "uint8_t const *hs_bindgen_41c5204933fd6b05 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_c588ded2a4e43ed3 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t const *hs_bindgen_a0c133d2f6cf6ecb ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t *hs_bindgen_df23dc13cfbceb66 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t const *hs_bindgen_04f19447334809a3 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t *hs_bindgen_685261e63a2699dc ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t const *hs_bindgen_d36a1f5767c400a9 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t *hs_bindgen_54efeef674e4787a ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t const *hs_bindgen_6d8f578fb4b8f599 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t *hs_bindgen_0571e5bd586c7239 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t const *hs_bindgen_75635c2481355b9d ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t *hs_bindgen_c1e147a254585429 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t const *hs_bindgen_c63eb568cec8ad9f ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t *hs_bindgen_dd8ada136a08e398 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t const *hs_bindgen_3f4ad7985062f4b4 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t *hs_bindgen_0ec9f92992fb98b3 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64)(arg1, arg2, arg3);"
+  , "}"
+  , "float const *hs_bindgen_23f11ff4a331711a ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "float *hs_bindgen_4b3f20877e3bea63 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32)(arg1, arg2, arg3);"
+  , "}"
+  , "double const *hs_bindgen_f12ea4b15194e665 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "double *hs_bindgen_ca1c705a0dd0055e ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 const *hs_bindgen_a98fe7eded61994f ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 *hs_bindgen_d6ca0ebc868780f0 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 const *hs_bindgen_bad0deef2747e198 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 *hs_bindgen_d421676f6243ada6 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e6f35aaf095c291e ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_8c10fbaea42a19e7 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_3affee0f8870d4ec ("
+  , "  heif_image_handle *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_a29dc52a1e29118f ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_5ca071150556330e ("
+  , "  heif_image *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version@
+foreign import ccall unsafe "hs_bindgen_e3bffa314a90058b" hs_bindgen_e3bffa314a90058b_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version@
+hs_bindgen_e3bffa314a90058b :: IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_e3bffa314a90058b =
+  BG.fromFFIType hs_bindgen_e3bffa314a90058b_base
+
+{-| __C declaration:__ @heif_get_version@
+
+    __defined at:__ @libheif\/heif_library.h 72:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version :: IO (PtrConst.PtrConst BG.CChar)
+heif_get_version = hs_bindgen_e3bffa314a90058b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number@
+foreign import ccall unsafe "hs_bindgen_5ac80c1443aa4448" hs_bindgen_5ac80c1443aa4448_base ::
+     IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number@
+hs_bindgen_5ac80c1443aa4448 :: IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_5ac80c1443aa4448 =
+  BG.fromFFIType hs_bindgen_5ac80c1443aa4448_base
+
+{-| __C declaration:__ @heif_get_version_number@
+
+    __defined at:__ @libheif\/heif_library.h 76:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number :: IO HsBindgen.Runtime.LibC.Word32
+heif_get_version_number = hs_bindgen_5ac80c1443aa4448
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_major@
+foreign import ccall unsafe "hs_bindgen_55e4521e93626126" hs_bindgen_55e4521e93626126_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_major@
+hs_bindgen_55e4521e93626126 :: IO BG.CInt
+hs_bindgen_55e4521e93626126 =
+  BG.fromFFIType hs_bindgen_55e4521e93626126_base
+
+{-| __C declaration:__ @heif_get_version_number_major@
+
+    __defined at:__ @libheif\/heif_library.h 79:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_major :: IO BG.CInt
+heif_get_version_number_major =
+  hs_bindgen_55e4521e93626126
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_minor@
+foreign import ccall unsafe "hs_bindgen_145a4f240219e0a9" hs_bindgen_145a4f240219e0a9_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_minor@
+hs_bindgen_145a4f240219e0a9 :: IO BG.CInt
+hs_bindgen_145a4f240219e0a9 =
+  BG.fromFFIType hs_bindgen_145a4f240219e0a9_base
+
+{-| __C declaration:__ @heif_get_version_number_minor@
+
+    __defined at:__ @libheif\/heif_library.h 81:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_minor :: IO BG.CInt
+heif_get_version_number_minor =
+  hs_bindgen_145a4f240219e0a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_maintenance@
+foreign import ccall unsafe "hs_bindgen_58fbe8d31194675b" hs_bindgen_58fbe8d31194675b_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_maintenance@
+hs_bindgen_58fbe8d31194675b :: IO BG.CInt
+hs_bindgen_58fbe8d31194675b =
+  BG.fromFFIType hs_bindgen_58fbe8d31194675b_base
+
+{-| __C declaration:__ @heif_get_version_number_maintenance@
+
+    __defined at:__ @libheif\/heif_library.h 83:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_maintenance :: IO BG.CInt
+heif_get_version_number_maintenance =
+  hs_bindgen_58fbe8d31194675b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_string_release@
+foreign import ccall unsafe "hs_bindgen_5305381a834858f6" hs_bindgen_5305381a834858f6_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_string_release@
+hs_bindgen_5305381a834858f6 ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_5305381a834858f6 =
+  BG.fromFFIType hs_bindgen_5305381a834858f6_base
+
+{-| __C declaration:__ @heif_string_release@
+
+    __defined at:__ @libheif\/heif_library.h 100:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_string_release ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+heif_string_release = hs_bindgen_5305381a834858f6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_init@
+foreign import ccall unsafe "hs_bindgen_c6cf67a7df25bdec" hs_bindgen_c6cf67a7df25bdec_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_init@
+hs_bindgen_c6cf67a7df25bdec ::
+     BG.Ptr Heif_init_params
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_c6cf67a7df25bdec =
+  BG.fromFFIType hs_bindgen_c6cf67a7df25bdec_base
+
+{-| __C declaration:__ @heif_init@
+
+    __defined at:__ @libheif\/heif_library.h 133:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_init ::
+     BG.Ptr Heif_init_params
+  -> IO Heif_error
+heif_init =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_c6cf67a7df25bdec x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_deinit@
+foreign import ccall unsafe "hs_bindgen_e1615a4fb170ecfe" hs_bindgen_e1615a4fb170ecfe_base ::
+     IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_deinit@
+hs_bindgen_e1615a4fb170ecfe :: IO ()
+hs_bindgen_e1615a4fb170ecfe =
+  BG.fromFFIType hs_bindgen_e1615a4fb170ecfe_base
+
+{-| __C declaration:__ @heif_deinit@
+
+    __defined at:__ @libheif\/heif_library.h 148:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_deinit :: IO ()
+heif_deinit = hs_bindgen_e1615a4fb170ecfe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugin@
+foreign import ccall unsafe "hs_bindgen_7e4ae8064e7fa414" hs_bindgen_7e4ae8064e7fa414_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugin@
+hs_bindgen_7e4ae8064e7fa414 ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7e4ae8064e7fa414 =
+  BG.fromFFIType hs_bindgen_7e4ae8064e7fa414_base
+
+{-| __C declaration:__ @heif_load_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 170:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugin ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugin@
+  -> IO Heif_error
+heif_load_plugin =
+  \filename0 ->
+    \out_plugin1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_7e4ae8064e7fa414 filename0 out_plugin1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugins@
+foreign import ccall unsafe "hs_bindgen_8d1c6ca731acead9" hs_bindgen_8d1c6ca731acead9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugins@
+hs_bindgen_8d1c6ca731acead9 ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8d1c6ca731acead9 =
+  BG.fromFFIType hs_bindgen_8d1c6ca731acead9_base
+
+{-| __C declaration:__ @heif_load_plugins@
+
+    __defined at:__ @libheif\/heif_library.h 173:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugins ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @directory@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugins@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_nPluginsLoaded@
+  -> BG.CInt
+     -- ^ __C declaration:__ @output_array_size@
+  -> IO Heif_error
+heif_load_plugins =
+  \directory0 ->
+    \out_plugins1 ->
+      \out_nPluginsLoaded2 ->
+        \output_array_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_8d1c6ca731acead9 directory0 out_plugins1 out_nPluginsLoaded2 output_array_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_unload_plugin@
+foreign import ccall unsafe "hs_bindgen_538500d1fad0b893" hs_bindgen_538500d1fad0b893_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_unload_plugin@
+hs_bindgen_538500d1fad0b893 ::
+     PtrConst.PtrConst Heif_plugin_info
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_538500d1fad0b893 =
+  BG.fromFFIType hs_bindgen_538500d1fad0b893_base
+
+{-| __C declaration:__ @heif_unload_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 179:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_unload_plugin ::
+     PtrConst.PtrConst Heif_plugin_info
+     -- ^ __C declaration:__ @plugin@
+  -> IO Heif_error
+heif_unload_plugin =
+  \plugin0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_538500d1fad0b893 plugin0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_9ed471f495e48c49" hs_bindgen_9ed471f495e48c49_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_plugin_directories@
+hs_bindgen_9ed471f495e48c49 :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+hs_bindgen_9ed471f495e48c49 =
+  BG.fromFFIType hs_bindgen_9ed471f495e48c49_base
+
+{-| __C declaration:__ @heif_get_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 185:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_plugin_directories :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+heif_get_plugin_directories =
+  hs_bindgen_9ed471f495e48c49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_9d2405417393e657" hs_bindgen_9d2405417393e657_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_plugin_directories@
+hs_bindgen_9d2405417393e657 ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_9d2405417393e657 =
+  BG.fromFFIType hs_bindgen_9d2405417393e657_base
+
+{-| __C declaration:__ @heif_free_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 188:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_plugin_directories ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+heif_free_plugin_directories =
+  hs_bindgen_9d2405417393e657
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder_plugin@
+foreign import ccall unsafe "hs_bindgen_835dc3bcc6b1f285" hs_bindgen_835dc3bcc6b1f285_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder_plugin@
+hs_bindgen_835dc3bcc6b1f285 ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_835dc3bcc6b1f285 =
+  BG.fromFFIType hs_bindgen_835dc3bcc6b1f285_base
+
+{-| __C declaration:__ @heif_register_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder_plugin ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_835dc3bcc6b1f285 x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_encoder_plugin@
+foreign import ccall unsafe "hs_bindgen_12b9be4adedf03bd" hs_bindgen_12b9be4adedf03bd_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_encoder_plugin@
+hs_bindgen_12b9be4adedf03bd ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_12b9be4adedf03bd =
+  BG.fromFFIType hs_bindgen_12b9be4adedf03bd_base
+
+{-| __C declaration:__ @heif_register_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 200:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_encoder_plugin ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> IO Heif_error
+heif_register_encoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_12b9be4adedf03bd x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder@
+foreign import ccall unsafe "hs_bindgen_5f60338dadf21f69" hs_bindgen_5f60338dadf21f69_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder@
+hs_bindgen_5f60338dadf21f69 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5f60338dadf21f69 =
+  BG.fromFFIType hs_bindgen_5f60338dadf21f69_base
+
+{-| __C declaration:__ @heif_register_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 205:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @heif@
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder =
+  \heif0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_5f60338dadf21f69 heif0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_colorspace@
+foreign import ccall unsafe "hs_bindgen_6eefe02d29f57a47" hs_bindgen_6eefe02d29f57a47_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_colorspace@
+hs_bindgen_6eefe02d29f57a47 ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+hs_bindgen_6eefe02d29f57a47 =
+  BG.fromFFIType hs_bindgen_6eefe02d29f57a47_base
+
+{-| __C declaration:__ @heif_image_get_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 150:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_colorspace ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+heif_image_get_colorspace =
+  hs_bindgen_6eefe02d29f57a47
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_chroma_format@
+foreign import ccall unsafe "hs_bindgen_53faf2b1fc8a2156" hs_bindgen_53faf2b1fc8a2156_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_chroma_format@
+hs_bindgen_53faf2b1fc8a2156 ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+hs_bindgen_53faf2b1fc8a2156 =
+  BG.fromFFIType hs_bindgen_53faf2b1fc8a2156_base
+
+{-| __C declaration:__ @heif_image_get_chroma_format@
+
+    __defined at:__ @libheif\/heif_image.h 154:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_chroma_format ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+heif_image_get_chroma_format =
+  hs_bindgen_53faf2b1fc8a2156
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_width@
+foreign import ccall unsafe "hs_bindgen_e633bfc0672b32e7" hs_bindgen_e633bfc0672b32e7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_width@
+hs_bindgen_e633bfc0672b32e7 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_e633bfc0672b32e7 =
+  BG.fromFFIType hs_bindgen_e633bfc0672b32e7_base
+
+{-| __C declaration:__ @heif_image_get_width@
+
+    __defined at:__ @libheif\/heif_image.h 164:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_width = hs_bindgen_e633bfc0672b32e7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_height@
+foreign import ccall unsafe "hs_bindgen_c0cbbfe9b797da51" hs_bindgen_c0cbbfe9b797da51_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_height@
+hs_bindgen_c0cbbfe9b797da51 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_c0cbbfe9b797da51 =
+  BG.fromFFIType hs_bindgen_c0cbbfe9b797da51_base
+
+{-| __C declaration:__ @heif_image_get_height@
+
+    __defined at:__ @libheif\/heif_image.h 174:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_height = hs_bindgen_c0cbbfe9b797da51
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_width@
+foreign import ccall unsafe "hs_bindgen_c79ddf7426928ec2" hs_bindgen_c79ddf7426928ec2_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_width@
+hs_bindgen_c79ddf7426928ec2 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_c79ddf7426928ec2 =
+  BG.fromFFIType hs_bindgen_c79ddf7426928ec2_base
+
+{-| __C declaration:__ @heif_image_get_primary_width@
+
+    __defined at:__ @libheif\/heif_image.h 186:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_width =
+  hs_bindgen_c79ddf7426928ec2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_height@
+foreign import ccall unsafe "hs_bindgen_fc1202e0c5cd3d09" hs_bindgen_fc1202e0c5cd3d09_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_height@
+hs_bindgen_fc1202e0c5cd3d09 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_fc1202e0c5cd3d09 =
+  BG.fromFFIType hs_bindgen_fc1202e0c5cd3d09_base
+
+{-| __C declaration:__ @heif_image_get_primary_height@
+
+    __defined at:__ @libheif\/heif_image.h 198:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_height =
+  hs_bindgen_fc1202e0c5cd3d09
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_crop@
+foreign import ccall unsafe "hs_bindgen_298d1d9ee3c4f3f2" hs_bindgen_298d1d9ee3c4f3f2_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_crop@
+hs_bindgen_298d1d9ee3c4f3f2 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_298d1d9ee3c4f3f2 =
+  BG.fromFFIType hs_bindgen_298d1d9ee3c4f3f2_base
+
+{-| __C declaration:__ @heif_image_crop@
+
+    __defined at:__ @libheif\/heif_image.h 222:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_crop ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @img@
+  -> BG.CInt
+     -- ^ __C declaration:__ @left@
+  -> BG.CInt
+     -- ^ __C declaration:__ @right@
+  -> BG.CInt
+     -- ^ __C declaration:__ @top@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bottom@
+  -> IO Heif_error
+heif_image_crop =
+  \img0 ->
+    \left1 ->
+      \right2 ->
+        \top3 ->
+          \bottom4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_298d1d9ee3c4f3f2 img0 left1 right2 top3 bottom4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extract_area@
+foreign import ccall unsafe "hs_bindgen_9fd687f6d6aa62dc" hs_bindgen_9fd687f6d6aa62dc_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extract_area@
+hs_bindgen_9fd687f6d6aa62dc ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9fd687f6d6aa62dc =
+  BG.fromFFIType hs_bindgen_9fd687f6d6aa62dc_base
+
+{-| __C declaration:__ @heif_image_extract_area@
+
+    __defined at:__ @libheif\/heif_image.h 226:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extract_area ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @x0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @y0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @w@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @h@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_extract_area =
+  \x0 ->
+    \x01 ->
+      \y02 ->
+        \w3 ->
+          \h4 ->
+            \limits5 ->
+              \out_image6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_9fd687f6d6aa62dc x0 x01 y02 w3 h4 limits5 out_image6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_4c57056151b51120" hs_bindgen_4c57056151b51120_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel@
+hs_bindgen_4c57056151b51120 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_4c57056151b51120 =
+  BG.fromFFIType hs_bindgen_4c57056151b51120_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image.h 238:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel =
+  hs_bindgen_4c57056151b51120
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel_range@
+foreign import ccall unsafe "hs_bindgen_740f2cdd311ad0b7" hs_bindgen_740f2cdd311ad0b7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel_range@
+hs_bindgen_740f2cdd311ad0b7 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_740f2cdd311ad0b7 =
+  BG.fromFFIType hs_bindgen_740f2cdd311ad0b7_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel_range@
+
+    __defined at:__ @libheif\/heif_image.h 247:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel_range ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel_range =
+  hs_bindgen_740f2cdd311ad0b7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_channel@
+foreign import ccall unsafe "hs_bindgen_682212294f338906" hs_bindgen_682212294f338906_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_channel@
+hs_bindgen_682212294f338906 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_682212294f338906 =
+  BG.fromFFIType hs_bindgen_682212294f338906_base
+
+{-| __C declaration:__ @heif_image_has_channel@
+
+    __defined at:__ @libheif\/heif_image.h 250:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_channel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_has_channel = hs_bindgen_682212294f338906
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly@
+foreign import ccall unsafe "hs_bindgen_5037c6505fb52d39" hs_bindgen_5037c6505fb52d39_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly@
+hs_bindgen_5037c6505fb52d39 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_5037c6505fb52d39 =
+  BG.fromFFIType hs_bindgen_5037c6505fb52d39_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly@
+
+    __defined at:__ @libheif\/heif_image.h 258:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly =
+  hs_bindgen_5037c6505fb52d39
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane@
+foreign import ccall unsafe "hs_bindgen_1f037f5c1d43593b" hs_bindgen_1f037f5c1d43593b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane@
+hs_bindgen_1f037f5c1d43593b ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_1f037f5c1d43593b =
+  BG.fromFFIType hs_bindgen_1f037f5c1d43593b_base
+
+{-| __C declaration:__ @heif_image_get_plane@
+
+    __defined at:__ @libheif\/heif_image.h 264:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane = hs_bindgen_1f037f5c1d43593b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly2@
+foreign import ccall unsafe "hs_bindgen_f7454f02bed93ef8" hs_bindgen_f7454f02bed93ef8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly2@
+hs_bindgen_f7454f02bed93ef8 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_f7454f02bed93ef8 =
+  BG.fromFFIType hs_bindgen_f7454f02bed93ef8_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly2@
+
+    __defined at:__ @libheif\/heif_image.h 273:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly2 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly2 =
+  hs_bindgen_f7454f02bed93ef8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane2@
+foreign import ccall unsafe "hs_bindgen_4a13b7033c17548d" hs_bindgen_4a13b7033c17548d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane2@
+hs_bindgen_4a13b7033c17548d ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_4a13b7033c17548d =
+  BG.fromFFIType hs_bindgen_4a13b7033c17548d_base
+
+{-| __C declaration:__ @heif_image_get_plane2@
+
+    __defined at:__ @libheif\/heif_image.h 278:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane2 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane2 = hs_bindgen_4a13b7033c17548d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_scale_image@
+foreign import ccall unsafe "hs_bindgen_cd8be1577d7b3a2b" hs_bindgen_cd8be1577d7b3a2b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_scale_image@
+hs_bindgen_cd8be1577d7b3a2b ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_scaling_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_cd8be1577d7b3a2b =
+  BG.fromFFIType hs_bindgen_cd8be1577d7b3a2b_base
+
+{-| __C declaration:__ @heif_image_scale_image@
+
+    __defined at:__ @libheif\/heif_image.h 287:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_scale_image ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @input@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @output@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> PtrConst.PtrConst Heif_scaling_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_image_scale_image =
+  \input0 ->
+    \output1 ->
+      \width2 ->
+        \height3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_cd8be1577d7b3a2b input0 output1 width2 height3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_to_size_fill_with_zero@
+foreign import ccall unsafe "hs_bindgen_f994012d02172f02" hs_bindgen_f994012d02172f02_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_to_size_fill_with_zero@
+hs_bindgen_f994012d02172f02 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f994012d02172f02 =
+  BG.fromFFIType hs_bindgen_f994012d02172f02_base
+
+{-| __C declaration:__ @heif_image_extend_to_size_fill_with_zero@
+
+    __defined at:__ @libheif\/heif_image.h 295:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_to_size_fill_with_zero ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @height@
+  -> IO Heif_error
+heif_image_extend_to_size_fill_with_zero =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_f994012d02172f02 image0 width1 height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_decoding_warnings@
+foreign import ccall unsafe "hs_bindgen_591b95f3625fb1f3" hs_bindgen_591b95f3625fb1f3_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_decoding_warnings@
+hs_bindgen_591b95f3625fb1f3 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_591b95f3625fb1f3 =
+  BG.fromFFIType hs_bindgen_591b95f3625fb1f3_base
+
+{-| __C declaration:__ @heif_image_get_decoding_warnings@
+
+    __defined at:__ @libheif\/heif_image.h 305:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_decoding_warnings ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @first_warning_idx@
+  -> BG.Ptr Heif_error
+     -- ^ __C declaration:__ @out_warnings@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_output_buffer_entries@
+  -> IO BG.CInt
+heif_image_get_decoding_warnings =
+  hs_bindgen_591b95f3625fb1f3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_decoding_warning@
+foreign import ccall unsafe "hs_bindgen_e0050d3b1bf5d002" hs_bindgen_e0050d3b1bf5d002_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_decoding_warning@
+hs_bindgen_e0050d3b1bf5d002 ::
+     BG.Ptr Heif_image
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e0050d3b1bf5d002 =
+  BG.fromFFIType hs_bindgen_e0050d3b1bf5d002_base
+
+{-| __C declaration:__ @heif_image_add_decoding_warning@
+
+    __defined at:__ @libheif\/heif_image.h 312:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_decoding_warning ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_error
+     -- ^ __C declaration:__ @err@
+  -> IO ()
+heif_image_add_decoding_warning =
+  \image0 ->
+    \err1 ->
+      BG.with err1 (\err2 ->
+                      hs_bindgen_e0050d3b1bf5d002 image0 err2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_release@
+foreign import ccall unsafe "hs_bindgen_f8b0209a7ec37965" hs_bindgen_f8b0209a7ec37965_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_release@
+hs_bindgen_f8b0209a7ec37965 ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+hs_bindgen_f8b0209a7ec37965 =
+  BG.fromFFIType hs_bindgen_f8b0209a7ec37965_base
+
+{-| __C declaration:__ @heif_image_release@
+
+    __defined at:__ @libheif\/heif_image.h 317:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_release ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+heif_image_release = hs_bindgen_f8b0209a7ec37965
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_58b6b25baf69f6bb" hs_bindgen_58b6b25baf69f6bb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_pixel_aspect_ratio@
+hs_bindgen_58b6b25baf69f6bb ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_58b6b25baf69f6bb =
+  BG.fromFFIType hs_bindgen_58b6b25baf69f6bb_base
+
+{-| __C declaration:__ @heif_image_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 320:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_get_pixel_aspect_ratio =
+  hs_bindgen_58b6b25baf69f6bb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_64ef88c5f4227050" hs_bindgen_64ef88c5f4227050_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_pixel_aspect_ratio@
+hs_bindgen_64ef88c5f4227050 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_64ef88c5f4227050 =
+  BG.fromFFIType hs_bindgen_64ef88c5f4227050_base
+
+{-| __C declaration:__ @heif_image_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 323:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_set_pixel_aspect_ratio =
+  hs_bindgen_64ef88c5f4227050
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_1021dce469e1b127" hs_bindgen_1021dce469e1b127_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_pixel_aspect_ratio@
+hs_bindgen_1021dce469e1b127 ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_1021dce469e1b127 =
+  BG.fromFFIType hs_bindgen_1021dce469e1b127_base
+
+{-| __C declaration:__ @heif_image_handle_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 326:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_handle_set_pixel_aspect_ratio =
+  hs_bindgen_1021dce469e1b127
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_create@
+foreign import ccall unsafe "hs_bindgen_e6de35774b2629f8" hs_bindgen_e6de35774b2629f8_base ::
+     BG.Int32
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_create@
+hs_bindgen_e6de35774b2629f8 ::
+     BG.CInt
+  -> BG.CInt
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e6de35774b2629f8 =
+  BG.fromFFIType hs_bindgen_e6de35774b2629f8_base
+
+{-| __C declaration:__ @heif_image_create@
+
+    __defined at:__ @libheif\/heif_image.h 344:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_create ::
+     BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_create =
+  \width0 ->
+    \height1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \out_image4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_e6de35774b2629f8 width0 height1 colorspace2 chroma3 out_image4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane@
+foreign import ccall unsafe "hs_bindgen_ded84e4fb2693ccb" hs_bindgen_ded84e4fb2693ccb_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane@
+hs_bindgen_ded84e4fb2693ccb ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ded84e4fb2693ccb =
+  BG.fromFFIType hs_bindgen_ded84e4fb2693ccb_base
+
+{-| __C declaration:__ @heif_image_add_plane@
+
+    __defined at:__ @libheif\/heif_image.h 378:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> IO Heif_error
+heif_image_add_plane =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_ded84e4fb2693ccb image0 channel1 width2 height3 bit_depth4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane_safe@
+foreign import ccall unsafe "hs_bindgen_14c07f3c95c4d2a1" hs_bindgen_14c07f3c95c4d2a1_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane_safe@
+hs_bindgen_14c07f3c95c4d2a1 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_14c07f3c95c4d2a1 =
+  BG.fromFFIType hs_bindgen_14c07f3c95c4d2a1_base
+
+{-| __C declaration:__ @heif_image_add_plane_safe@
+
+    __defined at:__ @libheif\/heif_image.h 387:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane_safe ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> IO Heif_error
+heif_image_add_plane_safe =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            \limits5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_14c07f3c95c4d2a1 image0 channel1 width2 height3 bit_depth4 limits5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_0cb37fdfaf80d23d" hs_bindgen_0cb37fdfaf80d23d_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_premultiplied_alpha@
+hs_bindgen_0cb37fdfaf80d23d ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_0cb37fdfaf80d23d =
+  BG.fromFFIType hs_bindgen_0cb37fdfaf80d23d_base
+
+{-| __C declaration:__ @heif_image_set_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 394:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @is_premultiplied_alpha@
+  -> IO ()
+heif_image_set_premultiplied_alpha =
+  hs_bindgen_0cb37fdfaf80d23d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_95281e4bf5195e90" hs_bindgen_95281e4bf5195e90_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_is_premultiplied_alpha@
+hs_bindgen_95281e4bf5195e90 ::
+     BG.Ptr Heif_image
+  -> IO BG.CInt
+hs_bindgen_95281e4bf5195e90 =
+  BG.fromFFIType hs_bindgen_95281e4bf5195e90_base
+
+{-| __C declaration:__ @heif_image_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_is_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO BG.CInt
+heif_image_is_premultiplied_alpha =
+  hs_bindgen_95281e4bf5195e90
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_padding_to_size@
+foreign import ccall unsafe "hs_bindgen_e7bd2b9f79bce485" hs_bindgen_e7bd2b9f79bce485_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_padding_to_size@
+hs_bindgen_e7bd2b9f79bce485 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e7bd2b9f79bce485 =
+  BG.fromFFIType hs_bindgen_e7bd2b9f79bce485_base
+
+{-| __C declaration:__ @heif_image_extend_padding_to_size@
+
+    __defined at:__ @libheif\/heif_image.h 406:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_padding_to_size ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_height@
+  -> IO Heif_error
+heif_image_extend_padding_to_size =
+  \image0 ->
+    \min_physical_width1 ->
+      \min_physical_height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_e7bd2b9f79bce485 image0 min_physical_width1 min_physical_height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_set_defaults@
+foreign import ccall unsafe "hs_bindgen_fa886f69180c9b13" hs_bindgen_fa886f69180c9b13_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_set_defaults@
+hs_bindgen_fa886f69180c9b13 ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+hs_bindgen_fa886f69180c9b13 =
+  BG.fromFFIType hs_bindgen_fa886f69180c9b13_base
+
+{-| __C declaration:__ @heif_color_conversion_options_set_defaults@
+
+    __defined at:__ @libheif\/heif_color.h 99:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_set_defaults ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+heif_color_conversion_options_set_defaults =
+  hs_bindgen_fa886f69180c9b13
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_alloc@
+foreign import ccall unsafe "hs_bindgen_3498384f565db0bf" hs_bindgen_3498384f565db0bf_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_alloc@
+hs_bindgen_3498384f565db0bf :: IO (BG.Ptr Heif_color_conversion_options_ext)
+hs_bindgen_3498384f565db0bf =
+  BG.fromFFIType hs_bindgen_3498384f565db0bf_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 102:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_alloc :: IO (BG.Ptr Heif_color_conversion_options_ext)
+heif_color_conversion_options_ext_alloc =
+  hs_bindgen_3498384f565db0bf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_copy@
+foreign import ccall unsafe "hs_bindgen_a5a41101b51031e5" hs_bindgen_a5a41101b51031e5_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_copy@
+hs_bindgen_a5a41101b51031e5 ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_a5a41101b51031e5 =
+  BG.fromFFIType hs_bindgen_a5a41101b51031e5_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_copy@
+
+    __defined at:__ @libheif\/heif_color.h 105:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_copy ::
+     BG.Ptr Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_color_conversion_options_ext_copy =
+  hs_bindgen_a5a41101b51031e5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_free@
+foreign import ccall unsafe "hs_bindgen_b151c814d468583c" hs_bindgen_b151c814d468583c_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_free@
+hs_bindgen_b151c814d468583c ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_b151c814d468583c =
+  BG.fromFFIType hs_bindgen_b151c814d468583c_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_free@
+
+    __defined at:__ @libheif\/heif_color.h 109:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_free ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+heif_color_conversion_options_ext_free =
+  hs_bindgen_b151c814d468583c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_3d62c61f9da0c21f" hs_bindgen_3d62c61f9da0c21f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_color_profile_type@
+hs_bindgen_3d62c61f9da0c21f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_color_profile_type
+hs_bindgen_3d62c61f9da0c21f =
+  BG.fromFFIType hs_bindgen_3d62c61f9da0c21f_base
+
+{-| __C declaration:__ @heif_image_handle_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 129:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_color_profile_type
+heif_image_handle_get_color_profile_type =
+  hs_bindgen_3d62c61f9da0c21f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_e524b9c333f3e6f9" hs_bindgen_e524b9c333f3e6f9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word64
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile_size@
+hs_bindgen_e524b9c333f3e6f9 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_e524b9c333f3e6f9 =
+  BG.fromFFIType hs_bindgen_e524b9c333f3e6f9_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 132:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_raw_color_profile_size =
+  hs_bindgen_e524b9c333f3e6f9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_df7ddd74d35a1d70" hs_bindgen_df7ddd74d35a1d70_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile@
+hs_bindgen_df7ddd74d35a1d70 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_df7ddd74d35a1d70 =
+  BG.fromFFIType hs_bindgen_df7ddd74d35a1d70_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 136:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_raw_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_df7ddd74d35a1d70 handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_color_primaries@
+foreign import ccall unsafe "hs_bindgen_9bd2c76f24a46069" hs_bindgen_9bd2c76f24a46069_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_color_primaries@
+hs_bindgen_9bd2c76f24a46069 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9bd2c76f24a46069 =
+  BG.fromFFIType hs_bindgen_9bd2c76f24a46069_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 215:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_color_primaries ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @cp@
+  -> IO Heif_error
+heif_nclx_color_profile_set_color_primaries =
+  \nclx0 ->
+    \cp1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_9bd2c76f24a46069 nclx0 cp1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_transfer_characteristics@
+foreign import ccall unsafe "hs_bindgen_55f3e8ab84a6b8ef" hs_bindgen_55f3e8ab84a6b8ef_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_transfer_characteristics@
+hs_bindgen_55f3e8ab84a6b8ef ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_55f3e8ab84a6b8ef =
+  BG.fromFFIType hs_bindgen_55f3e8ab84a6b8ef_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_transfer_characteristics ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @transfer_characteristics@
+  -> IO Heif_error
+heif_nclx_color_profile_set_transfer_characteristics =
+  \nclx0 ->
+    \transfer_characteristics1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_55f3e8ab84a6b8ef nclx0 transfer_characteristics1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_matrix_coefficients@
+foreign import ccall unsafe "hs_bindgen_8e5fd31a41ae1cdd" hs_bindgen_8e5fd31a41ae1cdd_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_matrix_coefficients@
+hs_bindgen_8e5fd31a41ae1cdd ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8e5fd31a41ae1cdd =
+  BG.fromFFIType hs_bindgen_8e5fd31a41ae1cdd_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 221:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_matrix_coefficients ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @matrix_coefficients@
+  -> IO Heif_error
+heif_nclx_color_profile_set_matrix_coefficients =
+  \nclx0 ->
+    \matrix_coefficients1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8e5fd31a41ae1cdd nclx0 matrix_coefficients1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_8546dd13ed062f1c" hs_bindgen_8546dd13ed062f1c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nclx_color_profile@
+hs_bindgen_8546dd13ed062f1c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8546dd13ed062f1c =
+  BG.fromFFIType hs_bindgen_8546dd13ed062f1c_base
+
+{-| __C declaration:__ @heif_image_handle_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 227:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_nclx_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8546dd13ed062f1c handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_alloc@
+foreign import ccall unsafe "hs_bindgen_ae248e74768fcbe7" hs_bindgen_ae248e74768fcbe7_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_alloc@
+hs_bindgen_ae248e74768fcbe7 :: IO (BG.Ptr Heif_color_profile_nclx)
+hs_bindgen_ae248e74768fcbe7 =
+  BG.fromFFIType hs_bindgen_ae248e74768fcbe7_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 234:26@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_alloc :: IO (BG.Ptr Heif_color_profile_nclx)
+heif_nclx_color_profile_alloc =
+  hs_bindgen_ae248e74768fcbe7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_free@
+foreign import ccall unsafe "hs_bindgen_e5cdf6772bff08ab" hs_bindgen_e5cdf6772bff08ab_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_free@
+hs_bindgen_e5cdf6772bff08ab ::
+     BG.Ptr Heif_color_profile_nclx
+  -> IO ()
+hs_bindgen_e5cdf6772bff08ab =
+  BG.fromFFIType hs_bindgen_e5cdf6772bff08ab_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_free@
+
+    __defined at:__ @libheif\/heif_color.h 237:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_free ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx_profile@
+  -> IO ()
+heif_nclx_color_profile_free =
+  hs_bindgen_e5cdf6772bff08ab
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_698c659a583ecfcf" hs_bindgen_698c659a583ecfcf_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_color_profile_type@
+hs_bindgen_698c659a583ecfcf ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_color_profile_type
+hs_bindgen_698c659a583ecfcf =
+  BG.fromFFIType hs_bindgen_698c659a583ecfcf_base
+
+{-| __C declaration:__ @heif_image_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 243:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_color_profile_type
+heif_image_get_color_profile_type =
+  hs_bindgen_698c659a583ecfcf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_899b31b8f4d0b139" hs_bindgen_899b31b8f4d0b139_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word64
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile_size@
+hs_bindgen_899b31b8f4d0b139 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_899b31b8f4d0b139 =
+  BG.fromFFIType hs_bindgen_899b31b8f4d0b139_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 247:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_get_raw_color_profile_size =
+  hs_bindgen_899b31b8f4d0b139
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_dd6958f1991911be" hs_bindgen_dd6958f1991911be_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile@
+hs_bindgen_dd6958f1991911be ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_dd6958f1991911be =
+  BG.fromFFIType hs_bindgen_dd6958f1991911be_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_raw_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_dd6958f1991911be image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_066842cfad9d7788" hs_bindgen_066842cfad9d7788_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nclx_color_profile@
+hs_bindgen_066842cfad9d7788 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_066842cfad9d7788 =
+  BG.fromFFIType hs_bindgen_066842cfad9d7788_base
+
+{-| __C declaration:__ @heif_image_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_nclx_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_066842cfad9d7788 image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_e39706130308fb22" hs_bindgen_e39706130308fb22_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word64
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_raw_color_profile@
+hs_bindgen_e39706130308fb22 ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e39706130308fb22 =
+  BG.fromFFIType hs_bindgen_e39706130308fb22_base
+
+{-| __C declaration:__ @heif_image_set_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 262:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_raw_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @profile_type_fourcc_string@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @profile_data@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @profile_size@
+  -> IO Heif_error
+heif_image_set_raw_color_profile =
+  \image0 ->
+    \profile_type_fourcc_string1 ->
+      \profile_data2 ->
+        \profile_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_e39706130308fb22 image0 profile_type_fourcc_string1 profile_data2 profile_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_c4e7050d9db10e9a" hs_bindgen_c4e7050d9db10e9a_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nclx_color_profile@
+hs_bindgen_c4e7050d9db10e9a ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_c4e7050d9db10e9a =
+  BG.fromFFIType hs_bindgen_c4e7050d9db10e9a_base
+
+{-| __C declaration:__ @heif_image_set_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 268:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nclx_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+     -- ^ __C declaration:__ @color_profile@
+  -> IO Heif_error
+heif_image_set_nclx_color_profile =
+  \image0 ->
+    \color_profile1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_c4e7050d9db10e9a image0 color_profile1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_be6ee6da0546d110" hs_bindgen_be6ee6da0546d110_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_content_light_level@
+hs_bindgen_be6ee6da0546d110 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_be6ee6da0546d110 =
+  BG.fromFFIType hs_bindgen_be6ee6da0546d110_base
+
+{-| __C declaration:__ @heif_image_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 301:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_content_light_level =
+  hs_bindgen_be6ee6da0546d110
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_d7e2ebf32ac53fac" hs_bindgen_d7e2ebf32ac53fac_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_content_light_level@
+hs_bindgen_d7e2ebf32ac53fac ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d7e2ebf32ac53fac =
+  BG.fromFFIType hs_bindgen_d7e2ebf32ac53fac_base
+
+{-| __C declaration:__ @heif_image_handle_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 304:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_content_light_level =
+  hs_bindgen_d7e2ebf32ac53fac
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_9d82218a99d2d392" hs_bindgen_9d82218a99d2d392_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_content_light_level@
+hs_bindgen_9d82218a99d2d392 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+  -> IO ()
+hs_bindgen_9d82218a99d2d392 =
+  BG.fromFFIType hs_bindgen_9d82218a99d2d392_base
+
+{-| __C declaration:__ @heif_image_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 308:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_content_light_level =
+  hs_bindgen_9d82218a99d2d392
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_b6298e4a5fe44f46" hs_bindgen_b6298e4a5fe44f46_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_content_light_level@
+hs_bindgen_b6298e4a5fe44f46 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+  -> IO BG.CInt
+hs_bindgen_b6298e4a5fe44f46 =
+  BG.fromFFIType hs_bindgen_b6298e4a5fe44f46_base
+
+{-| __C declaration:__ @heif_image_handle_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 312:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_content_light_level =
+  hs_bindgen_b6298e4a5fe44f46
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_1b896f9f9ad9433d" hs_bindgen_1b896f9f9ad9433d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_content_light_level@
+hs_bindgen_1b896f9f9ad9433d ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_1b896f9f9ad9433d =
+  BG.fromFFIType hs_bindgen_1b896f9f9ad9433d_base
+
+{-| __C declaration:__ @heif_image_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 315:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_content_light_level =
+  hs_bindgen_1b896f9f9ad9433d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_0fe67c68b9c30832" hs_bindgen_0fe67c68b9c30832_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_content_light_level@
+hs_bindgen_0fe67c68b9c30832 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_0fe67c68b9c30832 =
+  BG.fromFFIType hs_bindgen_0fe67c68b9c30832_base
+
+{-| __C declaration:__ @heif_image_handle_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 318:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_content_light_level =
+  hs_bindgen_0fe67c68b9c30832
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_082b5ffbdb05d279" hs_bindgen_082b5ffbdb05d279_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_mastering_display_colour_volume@
+hs_bindgen_082b5ffbdb05d279 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_082b5ffbdb05d279 =
+  BG.fromFFIType hs_bindgen_082b5ffbdb05d279_base
+
+{-| __C declaration:__ @heif_image_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_mastering_display_colour_volume =
+  hs_bindgen_082b5ffbdb05d279
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_fbcaca522f00d549" hs_bindgen_fbcaca522f00d549_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_mastering_display_colour_volume@
+hs_bindgen_fbcaca522f00d549 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_fbcaca522f00d549 =
+  BG.fromFFIType hs_bindgen_fbcaca522f00d549_base
+
+{-| __C declaration:__ @heif_image_handle_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_mastering_display_colour_volume =
+  hs_bindgen_fbcaca522f00d549
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_26de052b332f6318" hs_bindgen_26de052b332f6318_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_mastering_display_colour_volume@
+hs_bindgen_26de052b332f6318 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_26de052b332f6318 =
+  BG.fromFFIType hs_bindgen_26de052b332f6318_base
+
+{-| __C declaration:__ @heif_image_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 404:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_mastering_display_colour_volume =
+  hs_bindgen_26de052b332f6318
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_e82eb51924715179" hs_bindgen_e82eb51924715179_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_mastering_display_colour_volume@
+hs_bindgen_e82eb51924715179 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO BG.CInt
+hs_bindgen_e82eb51924715179 =
+  BG.fromFFIType hs_bindgen_e82eb51924715179_base
+
+{-| __C declaration:__ @heif_image_handle_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 408:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_mastering_display_colour_volume =
+  hs_bindgen_e82eb51924715179
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_ffad573ff1d2e1b4" hs_bindgen_ffad573ff1d2e1b4_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_mastering_display_colour_volume@
+hs_bindgen_ffad573ff1d2e1b4 ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_ffad573ff1d2e1b4 =
+  BG.fromFFIType hs_bindgen_ffad573ff1d2e1b4_base
+
+{-| __C declaration:__ @heif_image_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 411:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_mastering_display_colour_volume =
+  hs_bindgen_ffad573ff1d2e1b4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_e55ed00c652e3fea" hs_bindgen_e55ed00c652e3fea_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_mastering_display_colour_volume@
+hs_bindgen_e55ed00c652e3fea ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_e55ed00c652e3fea =
+  BG.fromFFIType hs_bindgen_e55ed00c652e3fea_base
+
+{-| __C declaration:__ @heif_image_handle_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 414:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_mastering_display_colour_volume =
+  hs_bindgen_e55ed00c652e3fea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_d6b8dd7ef6008c82" hs_bindgen_d6b8dd7ef6008c82_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_ambient_viewing_environment@
+hs_bindgen_d6b8dd7ef6008c82 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_d6b8dd7ef6008c82 =
+  BG.fromFFIType hs_bindgen_d6b8dd7ef6008c82_base
+
+{-| __C declaration:__ @heif_image_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 420:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_ambient_viewing_environment =
+  hs_bindgen_d6b8dd7ef6008c82
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_e0f6f90369de190f" hs_bindgen_e0f6f90369de190f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_ambient_viewing_environment@
+hs_bindgen_e0f6f90369de190f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_e0f6f90369de190f =
+  BG.fromFFIType hs_bindgen_e0f6f90369de190f_base
+
+{-| __C declaration:__ @heif_image_handle_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 423:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_ambient_viewing_environment =
+  hs_bindgen_e0f6f90369de190f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_03f4b4f3734ca3eb" hs_bindgen_03f4b4f3734ca3eb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_ambient_viewing_environment@
+hs_bindgen_03f4b4f3734ca3eb ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_03f4b4f3734ca3eb =
+  BG.fromFFIType hs_bindgen_03f4b4f3734ca3eb_base
+
+{-| __C declaration:__ @heif_image_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 427:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_get_ambient_viewing_environment =
+  hs_bindgen_03f4b4f3734ca3eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_dd1f30e9a69dbd49" hs_bindgen_dd1f30e9a69dbd49_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ambient_viewing_environment@
+hs_bindgen_dd1f30e9a69dbd49 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_dd1f30e9a69dbd49 =
+  BG.fromFFIType hs_bindgen_dd1f30e9a69dbd49_base
+
+{-| __C declaration:__ @heif_image_handle_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 431:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_ambient_viewing_environment =
+  hs_bindgen_dd1f30e9a69dbd49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_81030adb575665fe" hs_bindgen_81030adb575665fe_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_ambient_viewing_environment@
+hs_bindgen_81030adb575665fe ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_81030adb575665fe =
+  BG.fromFFIType hs_bindgen_81030adb575665fe_base
+
+{-| __C declaration:__ @heif_image_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 434:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_ambient_viewing_environment =
+  hs_bindgen_81030adb575665fe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_13c2a075b1cf7bd8" hs_bindgen_13c2a075b1cf7bd8_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_ambient_viewing_environment@
+hs_bindgen_13c2a075b1cf7bd8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_13c2a075b1cf7bd8 =
+  BG.fromFFIType hs_bindgen_13c2a075b1cf7bd8_base
+
+{-| __C declaration:__ @heif_image_handle_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 437:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_ambient_viewing_environment =
+  hs_bindgen_13c2a075b1cf7bd8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_7dd186fbfd6b464a" hs_bindgen_7dd186fbfd6b464a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_nominal_diffuse_white_luminance@
+hs_bindgen_7dd186fbfd6b464a ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_7dd186fbfd6b464a =
+  BG.fromFFIType hs_bindgen_7dd186fbfd6b464a_base
+
+{-| __C declaration:__ @heif_image_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 450:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_nominal_diffuse_white_luminance =
+  hs_bindgen_7dd186fbfd6b464a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_edcedf5e2ff9fd31" hs_bindgen_edcedf5e2ff9fd31_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nominal_diffuse_white_luminance@
+hs_bindgen_edcedf5e2ff9fd31 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_edcedf5e2ff9fd31 =
+  BG.fromFFIType hs_bindgen_edcedf5e2ff9fd31_base
+
+{-| __C declaration:__ @heif_image_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 453:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_nominal_diffuse_white_luminance =
+  hs_bindgen_edcedf5e2ff9fd31
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_a37f8bb02787e019" hs_bindgen_a37f8bb02787e019_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nominal_diffuse_white_luminance@
+hs_bindgen_a37f8bb02787e019 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_a37f8bb02787e019 =
+  BG.fromFFIType hs_bindgen_a37f8bb02787e019_base
+
+{-| __C declaration:__ @heif_image_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 456:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_set_nominal_diffuse_white_luminance =
+  hs_bindgen_a37f8bb02787e019
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_11ca3842cb553804" hs_bindgen_11ca3842cb553804_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_nominal_diffuse_white_luminance@
+hs_bindgen_11ca3842cb553804 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_11ca3842cb553804 =
+  BG.fromFFIType hs_bindgen_11ca3842cb553804_base
+
+{-| __C declaration:__ @heif_image_handle_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 459:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_nominal_diffuse_white_luminance =
+  hs_bindgen_11ca3842cb553804
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_24cee4290ffa0920" hs_bindgen_24cee4290ffa0920_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nominal_diffuse_white_luminance@
+hs_bindgen_24cee4290ffa0920 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_24cee4290ffa0920 =
+  BG.fromFFIType hs_bindgen_24cee4290ffa0920_base
+
+{-| __C declaration:__ @heif_image_handle_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 462:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_nominal_diffuse_white_luminance =
+  hs_bindgen_24cee4290ffa0920
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_4e00c9ca70a6fd07" hs_bindgen_4e00c9ca70a6fd07_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_nominal_diffuse_white_luminance@
+hs_bindgen_4e00c9ca70a6fd07 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_4e00c9ca70a6fd07 =
+  BG.fromFFIType hs_bindgen_4e00c9ca70a6fd07_base
+
+{-| __C declaration:__ @heif_image_handle_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 465:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_handle_set_nominal_diffuse_white_luminance =
+  hs_bindgen_4e00c9ca70a6fd07
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_mastering_display_colour_volume_decode@
+foreign import ccall unsafe "hs_bindgen_9c0e93af53ba356a" hs_bindgen_9c0e93af53ba356a_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_mastering_display_colour_volume_decode@
+hs_bindgen_9c0e93af53ba356a ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9c0e93af53ba356a =
+  BG.fromFFIType hs_bindgen_9c0e93af53ba356a_base
+
+{-| __C declaration:__ @heif_mastering_display_colour_volume_decode@
+
+    __defined at:__ @libheif\/heif_color.h 472:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_mastering_display_colour_volume_decode ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO Heif_error
+heif_mastering_display_colour_volume_decode =
+  \in'0 ->
+    \out1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_9c0e93af53ba356a in'0 out1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_main_brand@
+foreign import ccall unsafe "hs_bindgen_cb3b0a44d4aad6a4" hs_bindgen_cb3b0a44d4aad6a4_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_main_brand@
+hs_bindgen_cb3b0a44d4aad6a4 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_cb3b0a44d4aad6a4 =
+  BG.fromFFIType hs_bindgen_cb3b0a44d4aad6a4_base
+
+{-| __C declaration:__ @heif_read_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 269:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_main_brand = hs_bindgen_cb3b0a44d4aad6a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_minor_version_brand@
+foreign import ccall unsafe "hs_bindgen_46a8a8e54f91d91a" hs_bindgen_46a8a8e54f91d91a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_minor_version_brand@
+hs_bindgen_46a8a8e54f91d91a ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_46a8a8e54f91d91a =
+  BG.fromFFIType hs_bindgen_46a8a8e54f91d91a_base
+
+{-| __C declaration:__ @heif_read_minor_version_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 273:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_minor_version_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_minor_version_brand =
+  hs_bindgen_46a8a8e54f91d91a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_fourcc_to_brand@
+foreign import ccall unsafe "hs_bindgen_ec7439ef34aa82ca" hs_bindgen_ec7439ef34aa82ca_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_fourcc_to_brand@
+hs_bindgen_ec7439ef34aa82ca ::
+     PtrConst.PtrConst BG.CChar
+  -> IO Heif_brand2
+hs_bindgen_ec7439ef34aa82ca =
+  BG.fromFFIType hs_bindgen_ec7439ef34aa82ca_base
+
+{-| __C declaration:__ @heif_fourcc_to_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 277:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_fourcc_to_brand ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO Heif_brand2
+heif_fourcc_to_brand = hs_bindgen_ec7439ef34aa82ca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_brand_to_fourcc@
+foreign import ccall unsafe "hs_bindgen_f3063904ab900b28" hs_bindgen_f3063904ab900b28_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_brand_to_fourcc@
+hs_bindgen_f3063904ab900b28 ::
+     Heif_brand2
+  -> BG.Ptr BG.CChar
+  -> IO ()
+hs_bindgen_f3063904ab900b28 =
+  BG.fromFFIType hs_bindgen_f3063904ab900b28_base
+
+{-| __C declaration:__ @heif_brand_to_fourcc@
+
+    __defined at:__ @libheif\/heif_brands.h 281:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_brand_to_fourcc ::
+     Heif_brand2
+     -- ^ __C declaration:__ @brand@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @out_fourcc@
+  -> IO ()
+heif_brand_to_fourcc = hs_bindgen_f3063904ab900b28
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_f9382ea7accf2318" hs_bindgen_f9382ea7accf2318_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_brand@
+hs_bindgen_f9382ea7accf2318 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_f9382ea7accf2318 =
+  BG.fromFFIType hs_bindgen_f9382ea7accf2318_base
+
+{-| __C declaration:__ @heif_has_compatible_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 289:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO BG.CInt
+heif_has_compatible_brand =
+  hs_bindgen_f9382ea7accf2318
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_list_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_db37863ff0bc30e9" hs_bindgen_db37863ff0bc30e9_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_list_compatible_brands@
+hs_bindgen_db37863ff0bc30e9 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_db37863ff0bc30e9 =
+  BG.fromFFIType hs_bindgen_db37863ff0bc30e9_base
+
+{-| __C declaration:__ @heif_list_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_list_compatible_brands ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+     -- ^ __C declaration:__ @out_brands@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_size@
+  -> IO Heif_error
+heif_list_compatible_brands =
+  \data'0 ->
+    \len1 ->
+      \out_brands2 ->
+        \out_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_db37863ff0bc30e9 data'0 len1 out_brands2 out_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_list_of_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_0bf00e8ab2fd5553" hs_bindgen_0bf00e8ab2fd5553_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_list_of_compatible_brands@
+hs_bindgen_0bf00e8ab2fd5553 ::
+     BG.Ptr Heif_brand2
+  -> IO ()
+hs_bindgen_0bf00e8ab2fd5553 =
+  BG.fromFFIType hs_bindgen_0bf00e8ab2fd5553_base
+
+{-| __C declaration:__ @heif_free_list_of_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 297:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_list_of_compatible_brands ::
+     BG.Ptr Heif_brand2
+     -- ^ __C declaration:__ @brands_list@
+  -> IO ()
+heif_free_list_of_compatible_brands =
+  hs_bindgen_0bf00e8ab2fd5553
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_file_mime_type@
+foreign import ccall unsafe "hs_bindgen_083f69c89da808ac" hs_bindgen_083f69c89da808ac_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_file_mime_type@
+hs_bindgen_083f69c89da808ac ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_083f69c89da808ac =
+  BG.fromFFIType hs_bindgen_083f69c89da808ac_base
+
+{-| __C declaration:__ @heif_get_file_mime_type@
+
+    __defined at:__ @libheif\/heif_brands.h 318:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_file_mime_type ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_get_file_mime_type = hs_bindgen_083f69c89da808ac
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_filetype@
+foreign import ccall unsafe "hs_bindgen_2c11695134f8ae7a" hs_bindgen_2c11695134f8ae7a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_filetype@
+hs_bindgen_2c11695134f8ae7a ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_filetype_result
+hs_bindgen_2c11695134f8ae7a =
+  BG.fromFFIType hs_bindgen_2c11695134f8ae7a_base
+
+{-| __C declaration:__ @heif_check_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 333:27@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_filetype_result
+heif_check_filetype = hs_bindgen_2c11695134f8ae7a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_filetype@
+foreign import ccall unsafe "hs_bindgen_2e7bbe04a9324a3c" hs_bindgen_2e7bbe04a9324a3c_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_filetype@
+hs_bindgen_2e7bbe04a9324a3c ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_2e7bbe04a9324a3c =
+  BG.fromFFIType hs_bindgen_2e7bbe04a9324a3c_base
+
+{-| __C declaration:__ @heif_has_compatible_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 345:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_error
+heif_has_compatible_filetype =
+  \data'0 ->
+    \len1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_2e7bbe04a9324a3c data'0 len1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_jpeg_filetype@
+foreign import ccall unsafe "hs_bindgen_38f46e68912e8abc" hs_bindgen_38f46e68912e8abc_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_jpeg_filetype@
+hs_bindgen_38f46e68912e8abc ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_38f46e68912e8abc =
+  BG.fromFFIType hs_bindgen_38f46e68912e8abc_base
+
+{-| __C declaration:__ @heif_check_jpeg_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 348:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_jpeg_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO BG.CInt
+heif_check_jpeg_filetype =
+  hs_bindgen_38f46e68912e8abc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_main_brand@
+foreign import ccall unsafe "hs_bindgen_fdd065dc05fa657e" hs_bindgen_fdd065dc05fa657e_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_main_brand@
+hs_bindgen_fdd065dc05fa657e ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand
+hs_bindgen_fdd065dc05fa657e =
+  BG.fromFFIType hs_bindgen_fdd065dc05fa657e_base
+
+{-| __C declaration:__ @heif_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 379:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand
+heif_main_brand = hs_bindgen_fdd065dc05fa657e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_metadata_compression_method_supported@
+foreign import ccall unsafe "hs_bindgen_99b5ad50a3519f42" hs_bindgen_99b5ad50a3519f42_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_metadata_compression_method_supported@
+hs_bindgen_99b5ad50a3519f42 ::
+     Heif_metadata_compression
+  -> IO BG.CInt
+hs_bindgen_99b5ad50a3519f42 =
+  BG.fromFFIType hs_bindgen_99b5ad50a3519f42_base
+
+{-| __C declaration:__ @heif_metadata_compression_method_supported@
+
+    __defined at:__ @libheif\/heif_metadata.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_metadata_compression_method_supported ::
+     Heif_metadata_compression
+     -- ^ __C declaration:__ @method@
+  -> IO BG.CInt
+heif_metadata_compression_method_supported =
+  hs_bindgen_99b5ad50a3519f42
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_metadata_blocks@
+foreign import ccall unsafe "hs_bindgen_ed1b3c7730ce9adc" hs_bindgen_ed1b3c7730ce9adc_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_metadata_blocks@
+hs_bindgen_ed1b3c7730ce9adc ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_ed1b3c7730ce9adc =
+  BG.fromFFIType hs_bindgen_ed1b3c7730ce9adc_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_metadata_blocks@
+
+    __defined at:__ @libheif\/heif_metadata.h 49:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_metadata_blocks ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_metadata_blocks =
+  hs_bindgen_ed1b3c7730ce9adc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_metadata_block_IDs@
+foreign import ccall unsafe "hs_bindgen_ff545c340ebcc9e1" hs_bindgen_ff545c340ebcc9e1_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_metadata_block_IDs@
+hs_bindgen_ff545c340ebcc9e1 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_ff545c340ebcc9e1 =
+  BG.fromFFIType hs_bindgen_ff545c340ebcc9e1_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_metadata_block_IDs@
+
+    __defined at:__ @libheif\/heif_metadata.h 55:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_metadata_block_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_metadata_block_IDs =
+  hs_bindgen_ff545c340ebcc9e1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_type@
+foreign import ccall unsafe "hs_bindgen_5b79154e3bf116be" hs_bindgen_5b79154e3bf116be_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_type@
+hs_bindgen_5b79154e3bf116be ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_5b79154e3bf116be =
+  BG.fromFFIType hs_bindgen_5b79154e3bf116be_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 64:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_type =
+  hs_bindgen_5b79154e3bf116be
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_content_type@
+foreign import ccall unsafe "hs_bindgen_93d17d0350046b0f" hs_bindgen_93d17d0350046b0f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_content_type@
+hs_bindgen_93d17d0350046b0f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_93d17d0350046b0f =
+  BG.fromFFIType hs_bindgen_93d17d0350046b0f_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_content_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 70:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_content_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_content_type =
+  hs_bindgen_93d17d0350046b0f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_size@
+foreign import ccall unsafe "hs_bindgen_e0031552d6b50a40" hs_bindgen_e0031552d6b50a40_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word64
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_size@
+hs_bindgen_e0031552d6b50a40 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_e0031552d6b50a40 =
+  BG.fromFFIType hs_bindgen_e0031552d6b50a40_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_size@
+
+    __defined at:__ @libheif\/heif_metadata.h 75:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_metadata_size =
+  hs_bindgen_e0031552d6b50a40
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata@
+foreign import ccall unsafe "hs_bindgen_bf83eab617592597" hs_bindgen_bf83eab617592597_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata@
+hs_bindgen_bf83eab617592597 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_bf83eab617592597 =
+  BG.fromFFIType hs_bindgen_bf83eab617592597_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 83:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_metadata =
+  \handle0 ->
+    \metadata_id1 ->
+      \out_data2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_bf83eab617592597 handle0 metadata_id1 out_data2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_item_uri_type@
+foreign import ccall unsafe "hs_bindgen_2bda88c8a294819f" hs_bindgen_2bda88c8a294819f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_item_uri_type@
+hs_bindgen_2bda88c8a294819f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_2bda88c8a294819f =
+  BG.fromFFIType hs_bindgen_2bda88c8a294819f_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_item_uri_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 89:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_item_uri_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_item_uri_type =
+  hs_bindgen_2bda88c8a294819f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_exif_metadata@
+foreign import ccall unsafe "hs_bindgen_8cc5bc61773d6f99" hs_bindgen_8cc5bc61773d6f99_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_exif_metadata@
+hs_bindgen_8cc5bc61773d6f99 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8cc5bc61773d6f99 =
+  BG.fromFFIType hs_bindgen_8cc5bc61773d6f99_base
+
+{-| __C declaration:__ @heif_context_add_exif_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 96:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_exif_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_exif_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_8cc5bc61773d6f99 x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata@
+foreign import ccall unsafe "hs_bindgen_43ab7c8e6e51b6f6" hs_bindgen_43ab7c8e6e51b6f6_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata@
+hs_bindgen_43ab7c8e6e51b6f6 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_43ab7c8e6e51b6f6 =
+  BG.fromFFIType hs_bindgen_43ab7c8e6e51b6f6_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_XMP_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_43ab7c8e6e51b6f6 x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata2@
+foreign import ccall unsafe "hs_bindgen_690fe9f2d3331fbe" hs_bindgen_690fe9f2d3331fbe_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata2@
+hs_bindgen_690fe9f2d3331fbe ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> Heif_metadata_compression
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_690fe9f2d3331fbe =
+  BG.fromFFIType hs_bindgen_690fe9f2d3331fbe_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata2@
+
+    __defined at:__ @libheif\/heif_metadata.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> Heif_metadata_compression
+     -- ^ __C declaration:__ @compression@
+  -> IO Heif_error
+heif_context_add_XMP_metadata2 =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \compression4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_690fe9f2d3331fbe x0 image_handle1 data'2 size3 compression4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_metadata@
+foreign import ccall unsafe "hs_bindgen_43798e780a11e8ae" hs_bindgen_43798e780a11e8ae_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_metadata@
+hs_bindgen_43798e780a11e8ae ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_43798e780a11e8ae =
+  BG.fromFFIType hs_bindgen_43798e780a11e8ae_base
+
+{-| __C declaration:__ @heif_context_add_generic_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_type@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_type@
+  -> IO Heif_error
+heif_context_add_generic_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_type4 ->
+            \content_type5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_43798e780a11e8ae ctx0 image_handle1 data'2 size3 item_type4 content_type5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_uri_metadata@
+foreign import ccall unsafe "hs_bindgen_6f6e7853ece6bfaf" hs_bindgen_6f6e7853ece6bfaf_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_uri_metadata@
+hs_bindgen_6f6e7853ece6bfaf ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6f6e7853ece6bfaf =
+  BG.fromFFIType hs_bindgen_6f6e7853ece6bfaf_base
+
+{-| __C declaration:__ @heif_context_add_generic_uri_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_uri_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_uri_type@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_item_id@
+  -> IO Heif_error
+heif_context_add_generic_uri_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_uri_type4 ->
+            \out_item_id5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_6f6e7853ece6bfaf ctx0 image_handle1 data'2 size3 item_uri_type4 out_item_id5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_depth_image@
+foreign import ccall unsafe "hs_bindgen_ef96d03b5ecf889c" hs_bindgen_ef96d03b5ecf889c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_depth_image@
+hs_bindgen_ef96d03b5ecf889c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_ef96d03b5ecf889c =
+  BG.fromFFIType hs_bindgen_ef96d03b5ecf889c_base
+
+{-| __C declaration:__ @heif_image_handle_has_depth_image@
+
+    __defined at:__ @libheif\/heif_aux_images.h 39:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_depth_image ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_depth_image =
+  hs_bindgen_ef96d03b5ecf889c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_depth_images@
+foreign import ccall unsafe "hs_bindgen_4c02e1b7273148ce" hs_bindgen_4c02e1b7273148ce_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_depth_images@
+hs_bindgen_4c02e1b7273148ce ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_4c02e1b7273148ce =
+  BG.fromFFIType hs_bindgen_4c02e1b7273148ce_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_depth_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_depth_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_depth_images =
+  hs_bindgen_4c02e1b7273148ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_depth_image_IDs@
+foreign import ccall unsafe "hs_bindgen_46dac6a04d58d802" hs_bindgen_46dac6a04d58d802_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_depth_image_IDs@
+hs_bindgen_46dac6a04d58d802 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_46dac6a04d58d802 =
+  BG.fromFFIType hs_bindgen_46dac6a04d58d802_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_depth_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 45:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_depth_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_depth_image_IDs =
+  hs_bindgen_46dac6a04d58d802
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_handle@
+foreign import ccall unsafe "hs_bindgen_530a9c047a8545b8" hs_bindgen_530a9c047a8545b8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_handle@
+hs_bindgen_530a9c047a8545b8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_530a9c047a8545b8 =
+  BG.fromFFIType hs_bindgen_530a9c047a8545b8_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_depth_handle@
+  -> IO Heif_error
+heif_image_handle_get_depth_image_handle =
+  \handle0 ->
+    \depth_image_id1 ->
+      \out_depth_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_530a9c047a8545b8 handle0 depth_image_id1 out_depth_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_depth_representation_info_free@
+foreign import ccall unsafe "hs_bindgen_029d797a2655b5de" hs_bindgen_029d797a2655b5de_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_depth_representation_info_free@
+hs_bindgen_029d797a2655b5de ::
+     PtrConst.PtrConst Heif_depth_representation_info
+  -> IO ()
+hs_bindgen_029d797a2655b5de =
+  BG.fromFFIType hs_bindgen_029d797a2655b5de_base
+
+{-| __C declaration:__ @heif_depth_representation_info_free@
+
+    __defined at:__ @libheif\/heif_aux_images.h 87:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_depth_representation_info_free ::
+     PtrConst.PtrConst Heif_depth_representation_info
+     -- ^ __C declaration:__ @info@
+  -> IO ()
+heif_depth_representation_info_free =
+  hs_bindgen_029d797a2655b5de
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_representation_info@
+foreign import ccall unsafe "hs_bindgen_a73687120cab3c71" hs_bindgen_a73687120cab3c71_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_representation_info@
+hs_bindgen_a73687120cab3c71 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+  -> IO BG.CInt
+hs_bindgen_a73687120cab3c71 =
+  BG.fromFFIType hs_bindgen_a73687120cab3c71_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 95:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_representation_info ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_depth_image_representation_info =
+  hs_bindgen_a73687120cab3c71
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_thumbnails@
+foreign import ccall unsafe "hs_bindgen_3b94607899266366" hs_bindgen_3b94607899266366_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_thumbnails@
+hs_bindgen_3b94607899266366 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_3b94607899266366 =
+  BG.fromFFIType hs_bindgen_3b94607899266366_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_thumbnails@
+
+    __defined at:__ @libheif\/heif_aux_images.h 105:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_thumbnails ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_thumbnails =
+  hs_bindgen_3b94607899266366
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_thumbnail_IDs@
+foreign import ccall unsafe "hs_bindgen_12436f324557ab0b" hs_bindgen_12436f324557ab0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_thumbnail_IDs@
+hs_bindgen_12436f324557ab0b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_12436f324557ab0b =
+  BG.fromFFIType hs_bindgen_12436f324557ab0b_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_thumbnail_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 108:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_thumbnail_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_thumbnail_IDs =
+  hs_bindgen_12436f324557ab0b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_thumbnail@
+foreign import ccall unsafe "hs_bindgen_cbd2548e91d4b099" hs_bindgen_cbd2548e91d4b099_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_thumbnail@
+hs_bindgen_cbd2548e91d4b099 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_cbd2548e91d4b099 =
+  BG.fromFFIType hs_bindgen_cbd2548e91d4b099_base
+
+{-| __C declaration:__ @heif_image_handle_get_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 113:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_thumbnail ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @thumbnail_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumbnail_handle@
+  -> IO Heif_error
+heif_image_handle_get_thumbnail =
+  \main_image_handle0 ->
+    \thumbnail_id1 ->
+      \out_thumbnail_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_cbd2548e91d4b099 main_image_handle0 thumbnail_id1 out_thumbnail_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_thumbnail@
+foreign import ccall unsafe "hs_bindgen_d7fa83d73e654632" hs_bindgen_d7fa83d73e654632_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_thumbnail@
+hs_bindgen_d7fa83d73e654632 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d7fa83d73e654632 =
+  BG.fromFFIType hs_bindgen_d7fa83d73e654632_base
+
+{-| __C declaration:__ @heif_context_encode_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image_handle@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bbox_size@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumb_image_handle@
+  -> IO Heif_error
+heif_context_encode_thumbnail =
+  \x0 ->
+    \image1 ->
+      \master_image_handle2 ->
+        \encoder3 ->
+          \options4 ->
+            \bbox_size5 ->
+              \out_thumb_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_d7fa83d73e654632 x0 image1 master_image_handle2 encoder3 options4 bbox_size5 out_thumb_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_assign_thumbnail@
+foreign import ccall unsafe "hs_bindgen_b6b843db159f83b1" hs_bindgen_b6b843db159f83b1_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_assign_thumbnail@
+hs_bindgen_b6b843db159f83b1 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b6b843db159f83b1 =
+  BG.fromFFIType hs_bindgen_b6b843db159f83b1_base
+
+{-| __C declaration:__ @heif_context_assign_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 136:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_assign_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @thumbnail_image@
+  -> IO Heif_error
+heif_context_assign_thumbnail =
+  \x0 ->
+    \master_image1 ->
+      \thumbnail_image2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_b6b843db159f83b1 x0 master_image1 thumbnail_image2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_auxiliary_images@
+foreign import ccall unsafe "hs_bindgen_a07388633c39d124" hs_bindgen_a07388633c39d124_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_auxiliary_images@
+hs_bindgen_a07388633c39d124 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_a07388633c39d124 =
+  BG.fromFFIType hs_bindgen_a07388633c39d124_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_auxiliary_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_auxiliary_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_auxiliary_images =
+  hs_bindgen_a07388633c39d124
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+foreign import ccall unsafe "hs_bindgen_7826be70e6d91574" hs_bindgen_7826be70e6d91574_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+hs_bindgen_7826be70e6d91574 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_7826be70e6d91574 =
+  BG.fromFFIType hs_bindgen_7826be70e6d91574_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_auxiliary_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 152:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_auxiliary_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_auxiliary_image_IDs =
+  hs_bindgen_7826be70e6d91574
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_f6bf51713dbde24e" hs_bindgen_f6bf51713dbde24e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_type@
+hs_bindgen_f6bf51713dbde24e ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f6bf51713dbde24e =
+  BG.fromFFIType hs_bindgen_f6bf51713dbde24e_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 158:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_type =
+  \handle0 ->
+    \out_type1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_f6bf51713dbde24e handle0 out_type1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_03aca62850d5d65f" hs_bindgen_03aca62850d5d65f_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release_auxiliary_type@
+hs_bindgen_03aca62850d5d65f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_03aca62850d5d65f =
+  BG.fromFFIType hs_bindgen_03aca62850d5d65f_base
+
+{-| __C declaration:__ @heif_image_handle_release_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 162:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_release_auxiliary_type =
+  hs_bindgen_03aca62850d5d65f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_image_handle@
+foreign import ccall unsafe "hs_bindgen_38168275ff826772" hs_bindgen_38168275ff826772_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_image_handle@
+hs_bindgen_38168275ff826772 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_38168275ff826772 =
+  BG.fromFFIType hs_bindgen_38168275ff826772_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @auxiliary_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_auxiliary_handle@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_image_handle =
+  \main_image_handle0 ->
+    \auxiliary_id1 ->
+      \out_auxiliary_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_38168275ff826772 main_image_handle0 auxiliary_id1 out_auxiliary_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_free_auxiliary_types@
+foreign import ccall unsafe "hs_bindgen_6f5a921cd33ac8ee" hs_bindgen_6f5a921cd33ac8ee_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_free_auxiliary_types@
+hs_bindgen_6f5a921cd33ac8ee ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_6f5a921cd33ac8ee =
+  BG.fromFFIType hs_bindgen_6f5a921cd33ac8ee_base
+
+{-| __C declaration:__ @heif_image_handle_free_auxiliary_types@
+
+    __defined at:__ @libheif\/heif_aux_images.h 175:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_free_auxiliary_types ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_free_auxiliary_types =
+  hs_bindgen_6f5a921cd33ac8ee
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_entity_groups@
+foreign import ccall unsafe "hs_bindgen_ae6bb46cb10ef49b" hs_bindgen_ae6bb46cb10ef49b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_entity_groups@
+hs_bindgen_ae6bb46cb10ef49b ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> Heif_item_id
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr Heif_entity_group)
+hs_bindgen_ae6bb46cb10ef49b =
+  BG.fromFFIType hs_bindgen_ae6bb46cb10ef49b_base
+
+{-| __C declaration:__ @heif_context_get_entity_groups@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 46:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_entity_groups ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @type_filter@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @item_filter@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_num_groups@
+  -> IO (BG.Ptr Heif_entity_group)
+heif_context_get_entity_groups =
+  hs_bindgen_ae6bb46cb10ef49b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_entity_groups_release@
+foreign import ccall unsafe "hs_bindgen_ccbaf41a25b5fc17" hs_bindgen_ccbaf41a25b5fc17_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_entity_groups_release@
+hs_bindgen_ccbaf41a25b5fc17 ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_ccbaf41a25b5fc17 =
+  BG.fromFFIType hs_bindgen_ccbaf41a25b5fc17_base
+
+{-| __C declaration:__ @heif_entity_groups_release@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 53:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_entity_groups_release ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+     -- ^ __C declaration:__ @num_groups@
+  -> IO ()
+heif_entity_groups_release =
+  hs_bindgen_ccbaf41a25b5fc17
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_global_security_limits@
+foreign import ccall unsafe "hs_bindgen_0bd62767a85d72e4" hs_bindgen_0bd62767a85d72e4_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_global_security_limits@
+hs_bindgen_0bd62767a85d72e4 :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_0bd62767a85d72e4 =
+  BG.fromFFIType hs_bindgen_0bd62767a85d72e4_base
+
+{-| __C declaration:__ @heif_get_global_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 94:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_global_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_global_security_limits =
+  hs_bindgen_0bd62767a85d72e4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_disabled_security_limits@
+foreign import ccall unsafe "hs_bindgen_1898bc2f36224985" hs_bindgen_1898bc2f36224985_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_disabled_security_limits@
+hs_bindgen_1898bc2f36224985 :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_1898bc2f36224985 =
+  BG.fromFFIType hs_bindgen_1898bc2f36224985_base
+
+{-| __C declaration:__ @heif_get_disabled_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 98:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_disabled_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_disabled_security_limits =
+  hs_bindgen_1898bc2f36224985
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_security_limits@
+foreign import ccall unsafe "hs_bindgen_2a5ca5c742b8d454" hs_bindgen_2a5ca5c742b8d454_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_security_limits@
+hs_bindgen_2a5ca5c742b8d454 ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+hs_bindgen_2a5ca5c742b8d454 =
+  BG.fromFFIType hs_bindgen_2a5ca5c742b8d454_base
+
+{-| __C declaration:__ @heif_context_get_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 103:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_security_limits ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+heif_context_get_security_limits =
+  hs_bindgen_2a5ca5c742b8d454
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_security_limits@
+foreign import ccall unsafe "hs_bindgen_8ac69b76d966cf30" hs_bindgen_8ac69b76d966cf30_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_security_limits@
+hs_bindgen_8ac69b76d966cf30 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8ac69b76d966cf30 =
+  BG.fromFFIType hs_bindgen_8ac69b76d966cf30_base
+
+{-| __C declaration:__ @heif_context_set_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_security_limits ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> IO Heif_error
+heif_context_set_security_limits =
+  \x0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8ac69b76d966cf30 x0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_maximum_image_size_limit@
+foreign import ccall unsafe "hs_bindgen_63f91ddf3fdf9157" hs_bindgen_63f91ddf3fdf9157_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_maximum_image_size_limit@
+hs_bindgen_63f91ddf3fdf9157 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_63f91ddf3fdf9157 =
+  BG.fromFFIType hs_bindgen_63f91ddf3fdf9157_base
+
+{-| __C declaration:__ @heif_context_set_maximum_image_size_limit@
+
+    __defined at:__ @libheif\/heif_security.h 117:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_maximum_image_size_limit ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @maximum_width@
+  -> IO ()
+heif_context_set_maximum_image_size_limit =
+  hs_bindgen_63f91ddf3fdf9157
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_alloc@
+foreign import ccall unsafe "hs_bindgen_5072fed60822f439" hs_bindgen_5072fed60822f439_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_alloc@
+hs_bindgen_5072fed60822f439 :: IO (BG.Ptr Heif_context)
+hs_bindgen_5072fed60822f439 =
+  BG.fromFFIType hs_bindgen_5072fed60822f439_base
+
+{-| __C declaration:__ @heif_context_alloc@
+
+    __defined at:__ @libheif\/heif_context.h 130:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_alloc :: IO (BG.Ptr Heif_context)
+heif_context_alloc = hs_bindgen_5072fed60822f439
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_free@
+foreign import ccall unsafe "hs_bindgen_d4224d2b144531cf" hs_bindgen_d4224d2b144531cf_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_free@
+hs_bindgen_d4224d2b144531cf ::
+     BG.Ptr Heif_context
+  -> IO ()
+hs_bindgen_d4224d2b144531cf =
+  BG.fromFFIType hs_bindgen_d4224d2b144531cf_base
+
+{-| __C declaration:__ @heif_context_free@
+
+    __defined at:__ @libheif\/heif_context.h 134:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_free ::
+     BG.Ptr Heif_context
+  -> IO ()
+heif_context_free = hs_bindgen_d4224d2b144531cf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_file@
+foreign import ccall unsafe "hs_bindgen_6a121ee485ba22bf" hs_bindgen_6a121ee485ba22bf_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_file@
+hs_bindgen_6a121ee485ba22bf ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6a121ee485ba22bf =
+  BG.fromFFIType hs_bindgen_6a121ee485ba22bf_base
+
+{-| __C declaration:__ @heif_context_read_from_file@
+
+    __defined at:__ @libheif\/heif_context.h 237:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_file =
+  \x0 ->
+    \filename1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_6a121ee485ba22bf x0 filename1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory@
+foreign import ccall unsafe "hs_bindgen_174457bbb7c8bbd2" hs_bindgen_174457bbb7c8bbd2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word64
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory@
+hs_bindgen_174457bbb7c8bbd2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_174457bbb7c8bbd2 =
+  BG.fromFFIType hs_bindgen_174457bbb7c8bbd2_base
+
+{-| __C declaration:__ @heif_context_read_from_memory@
+
+    __defined at:__ @libheif\/heif_context.h 244:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_174457bbb7c8bbd2 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory_without_copy@
+foreign import ccall unsafe "hs_bindgen_fcf75bd82a2068c9" hs_bindgen_fcf75bd82a2068c9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word64
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory_without_copy@
+hs_bindgen_fcf75bd82a2068c9 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_fcf75bd82a2068c9 =
+  BG.fromFFIType hs_bindgen_fcf75bd82a2068c9_base
+
+{-| __C declaration:__ @heif_context_read_from_memory_without_copy@
+
+    __defined at:__ @libheif\/heif_context.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory_without_copy ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory_without_copy =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_fcf75bd82a2068c9 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_reader@
+foreign import ccall unsafe "hs_bindgen_30a7fb98ea82638e" hs_bindgen_30a7fb98ea82638e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_reader@
+hs_bindgen_30a7fb98ea82638e ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+  -> BG.Ptr BG.Void
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_30a7fb98ea82638e =
+  BG.fromFFIType hs_bindgen_30a7fb98ea82638e_base
+
+{-| __C declaration:__ @heif_context_read_from_reader@
+
+    __defined at:__ @libheif\/heif_context.h 256:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_reader ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+     -- ^ __C declaration:__ @reader@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_reader =
+  \x0 ->
+    \reader1 ->
+      \userdata2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_30a7fb98ea82638e x0 reader1 userdata2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_number_of_top_level_images@
+foreign import ccall unsafe "hs_bindgen_d022237e551807f9" hs_bindgen_d022237e551807f9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_number_of_top_level_images@
+hs_bindgen_d022237e551807f9 ::
+     BG.Ptr Heif_context
+  -> IO BG.CInt
+hs_bindgen_d022237e551807f9 =
+  BG.fromFFIType hs_bindgen_d022237e551807f9_base
+
+{-| __C declaration:__ @heif_context_get_number_of_top_level_images@
+
+    __defined at:__ @libheif\/heif_context.h 265:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_number_of_top_level_images ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_number_of_top_level_images =
+  hs_bindgen_d022237e551807f9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_is_top_level_image_ID@
+foreign import ccall unsafe "hs_bindgen_42c1e4344d442b11" hs_bindgen_42c1e4344d442b11_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_is_top_level_image_ID@
+hs_bindgen_42c1e4344d442b11 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> IO BG.CInt
+hs_bindgen_42c1e4344d442b11 =
+  BG.fromFFIType hs_bindgen_42c1e4344d442b11_base
+
+{-| __C declaration:__ @heif_context_is_top_level_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 268:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_is_top_level_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO BG.CInt
+heif_context_is_top_level_image_ID =
+  hs_bindgen_42c1e4344d442b11
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_list_of_top_level_image_IDs@
+foreign import ccall unsafe "hs_bindgen_563deefc7bdc5b71" hs_bindgen_563deefc7bdc5b71_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_list_of_top_level_image_IDs@
+hs_bindgen_563deefc7bdc5b71 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_563deefc7bdc5b71 =
+  BG.fromFFIType hs_bindgen_563deefc7bdc5b71_base
+
+{-| __C declaration:__ @heif_context_get_list_of_top_level_image_IDs@
+
+    __defined at:__ @libheif\/heif_context.h 273:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_list_of_top_level_image_IDs ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ID_array@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_list_of_top_level_image_IDs =
+  hs_bindgen_563deefc7bdc5b71
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_ID@
+foreign import ccall unsafe "hs_bindgen_e211461a4b3d3f0b" hs_bindgen_e211461a4b3d3f0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_ID@
+hs_bindgen_e211461a4b3d3f0b ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e211461a4b3d3f0b =
+  BG.fromFFIType hs_bindgen_e211461a4b3d3f0b_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 278:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO Heif_error
+heif_context_get_primary_image_ID =
+  \ctx0 ->
+    \id1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_e211461a4b3d3f0b ctx0 id1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_handle@
+foreign import ccall unsafe "hs_bindgen_47dc3223f11aefec" hs_bindgen_47dc3223f11aefec_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_handle@
+hs_bindgen_47dc3223f11aefec ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_47dc3223f11aefec =
+  BG.fromFFIType hs_bindgen_47dc3223f11aefec_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 283:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_primary_image_handle =
+  \ctx0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_47dc3223f11aefec ctx0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_image_handle@
+foreign import ccall unsafe "hs_bindgen_b49b56d6f03fcaf8" hs_bindgen_b49b56d6f03fcaf8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_image_handle@
+hs_bindgen_b49b56d6f03fcaf8 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b49b56d6f03fcaf8 =
+  BG.fromFFIType hs_bindgen_b49b56d6f03fcaf8_base
+
+{-| __C declaration:__ @heif_context_get_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 288:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_image_handle =
+  \ctx0 ->
+    \id1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_b49b56d6f03fcaf8 ctx0 id1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_debug_dump_boxes_to_file@
+foreign import ccall unsafe "hs_bindgen_8d375594ebb1037b" hs_bindgen_8d375594ebb1037b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_debug_dump_boxes_to_file@
+hs_bindgen_8d375594ebb1037b ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_8d375594ebb1037b =
+  BG.fromFFIType hs_bindgen_8d375594ebb1037b_base
+
+{-| __C declaration:__ @heif_context_debug_dump_boxes_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 296:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_debug_dump_boxes_to_file ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @fd@
+  -> IO ()
+heif_context_debug_dump_boxes_to_file =
+  hs_bindgen_8d375594ebb1037b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_write_mini_format@
+foreign import ccall unsafe "hs_bindgen_64075557c6a39094" hs_bindgen_64075557c6a39094_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_write_mini_format@
+hs_bindgen_64075557c6a39094 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_64075557c6a39094 =
+  BG.fromFFIType hs_bindgen_64075557c6a39094_base
+
+{-| __C declaration:__ @heif_context_set_write_mini_format@
+
+    __defined at:__ @libheif\/heif_context.h 309:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_write_mini_format ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO ()
+heif_context_set_write_mini_format =
+  hs_bindgen_64075557c6a39094
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write_to_file@
+foreign import ccall unsafe "hs_bindgen_4fcabf8d41da421f" hs_bindgen_4fcabf8d41da421f_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write_to_file@
+hs_bindgen_4fcabf8d41da421f ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4fcabf8d41da421f =
+  BG.fromFFIType hs_bindgen_4fcabf8d41da421f_base
+
+{-| __C declaration:__ @heif_context_write_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 316:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write_to_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> IO Heif_error
+heif_context_write_to_file =
+  \x0 ->
+    \filename1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4fcabf8d41da421f x0 filename1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write@
+foreign import ccall unsafe "hs_bindgen_dcde2d838b9789eb" hs_bindgen_dcde2d838b9789eb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write@
+hs_bindgen_dcde2d838b9789eb ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_dcde2d838b9789eb =
+  BG.fromFFIType hs_bindgen_dcde2d838b9789eb_base
+
+{-| __C declaration:__ @heif_context_write@
+
+    __defined at:__ @libheif\/heif_context.h 335:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+     -- ^ __C declaration:__ @writer@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> IO Heif_error
+heif_context_write =
+  \x0 ->
+    \writer1 ->
+      \userdata2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_dcde2d838b9789eb x0 writer1 userdata2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_8b4419bc4eb2363d" hs_bindgen_8b4419bc4eb2363d_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_encoder_for_format@
+hs_bindgen_8b4419bc4eb2363d ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_8b4419bc4eb2363d =
+  BG.fromFFIType hs_bindgen_8b4419bc4eb2363d_base
+
+{-| __C declaration:__ @heif_have_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 63:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_encoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_encoder_for_format =
+  hs_bindgen_8b4419bc4eb2363d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_20792e040c32e0e8" hs_bindgen_20792e040c32e0e8_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_encoder_descriptors@
+hs_bindgen_20792e040c32e0e8 ::
+     Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_20792e040c32e0e8 =
+  BG.fromFFIType hs_bindgen_20792e040c32e0e8_base
+
+{-| __C declaration:__ @heif_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 72:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_encoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_encoder_descriptors =
+  hs_bindgen_20792e040c32e0e8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_7378a87d06f64c7f" hs_bindgen_7378a87d06f64c7f_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_name@
+hs_bindgen_7378a87d06f64c7f ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_7378a87d06f64c7f =
+  BG.fromFFIType hs_bindgen_7378a87d06f64c7f_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 79:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_name =
+  hs_bindgen_7378a87d06f64c7f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_32132b83ae93dd0d" hs_bindgen_32132b83ae93dd0d_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_id_name@
+hs_bindgen_32132b83ae93dd0d ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_32132b83ae93dd0d =
+  BG.fromFFIType hs_bindgen_32132b83ae93dd0d_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 84:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_id_name =
+  hs_bindgen_32132b83ae93dd0d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_compression_format@
+foreign import ccall unsafe "hs_bindgen_516b3c831a5935aa" hs_bindgen_516b3c831a5935aa_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_compression_format@
+hs_bindgen_516b3c831a5935aa ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+hs_bindgen_516b3c831a5935aa =
+  BG.fromFFIType hs_bindgen_516b3c831a5935aa_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_compression_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 88:1@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_compression_format ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+heif_encoder_descriptor_get_compression_format =
+  hs_bindgen_516b3c831a5935aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_387691abb58c5a8c" hs_bindgen_387691abb58c5a8c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossy_compression@
+hs_bindgen_387691abb58c5a8c ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_387691abb58c5a8c =
+  BG.fromFFIType hs_bindgen_387691abb58c5a8c_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 91:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossy_compression =
+  hs_bindgen_387691abb58c5a8c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_c3eff547363f97b7" hs_bindgen_c3eff547363f97b7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossless_compression@
+hs_bindgen_c3eff547363f97b7 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_c3eff547363f97b7 =
+  BG.fromFFIType hs_bindgen_c3eff547363f97b7_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 94:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossless_compression =
+  hs_bindgen_c3eff547363f97b7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder@
+foreign import ccall unsafe "hs_bindgen_4c48d2c2a159ab39" hs_bindgen_4c48d2c2a159ab39_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder@
+hs_bindgen_4c48d2c2a159ab39 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4c48d2c2a159ab39 =
+  BG.fromFFIType hs_bindgen_4c48d2c2a159ab39_base
+
+{-| __C declaration:__ @heif_context_get_encoder@
+
+    __defined at:__ @libheif\/heif_encoding.h 99:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+     -- ^ __C declaration:__ @out_encoder@
+  -> IO Heif_error
+heif_context_get_encoder =
+  \context0 ->
+    \x1 ->
+      \out_encoder2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_4c48d2c2a159ab39 context0 x1 out_encoder2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_5bab8f03475ec97b" hs_bindgen_5bab8f03475ec97b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_for_format@
+hs_bindgen_5bab8f03475ec97b ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5bab8f03475ec97b =
+  BG.fromFFIType hs_bindgen_5bab8f03475ec97b_base
+
+{-| __C declaration:__ @heif_context_get_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 106:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_for_format ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> IO Heif_error
+heif_context_get_encoder_for_format =
+  \context0 ->
+    \format1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_5bab8f03475ec97b context0 format1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_release@
+foreign import ccall unsafe "hs_bindgen_5be4df5257e0d63e" hs_bindgen_5be4df5257e0d63e_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_release@
+hs_bindgen_5be4df5257e0d63e ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+hs_bindgen_5be4df5257e0d63e =
+  BG.fromFFIType hs_bindgen_5be4df5257e0d63e_base
+
+{-| __C declaration:__ @heif_encoder_release@
+
+    __defined at:__ @libheif\/heif_encoding.h 114:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_release ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+heif_encoder_release = hs_bindgen_5be4df5257e0d63e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_name@
+foreign import ccall unsafe "hs_bindgen_55e2efba5427c071" hs_bindgen_55e2efba5427c071_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_name@
+hs_bindgen_55e2efba5427c071 ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_55e2efba5427c071 =
+  BG.fromFFIType hs_bindgen_55e2efba5427c071_base
+
+{-| __C declaration:__ @heif_encoder_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 118:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_name ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_get_name = hs_bindgen_55e2efba5427c071
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossy_quality@
+foreign import ccall unsafe "hs_bindgen_9700eae02c9f1b08" hs_bindgen_9700eae02c9f1b08_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossy_quality@
+hs_bindgen_9700eae02c9f1b08 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9700eae02c9f1b08 =
+  BG.fromFFIType hs_bindgen_9700eae02c9f1b08_base
+
+{-| __C declaration:__ @heif_encoder_set_lossy_quality@
+
+    __defined at:__ @libheif\/heif_encoding.h 134:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossy_quality ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @quality@
+  -> IO Heif_error
+heif_encoder_set_lossy_quality =
+  \x0 ->
+    \quality1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_9700eae02c9f1b08 x0 quality1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossless@
+foreign import ccall unsafe "hs_bindgen_0d4543b236bd057c" hs_bindgen_0d4543b236bd057c_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossless@
+hs_bindgen_0d4543b236bd057c ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_0d4543b236bd057c =
+  BG.fromFFIType hs_bindgen_0d4543b236bd057c_base
+
+{-| __C declaration:__ @heif_encoder_set_lossless@
+
+    __defined at:__ @libheif\/heif_encoding.h 137:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossless ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO Heif_error
+heif_encoder_set_lossless =
+  \x0 ->
+    \enable1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_0d4543b236bd057c x0 enable1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_logging_level@
+foreign import ccall unsafe "hs_bindgen_528ef0518bd8ed17" hs_bindgen_528ef0518bd8ed17_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_logging_level@
+hs_bindgen_528ef0518bd8ed17 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_528ef0518bd8ed17 =
+  BG.fromFFIType hs_bindgen_528ef0518bd8ed17_base
+
+{-| __C declaration:__ @heif_encoder_set_logging_level@
+
+    __defined at:__ @libheif\/heif_encoding.h 141:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_logging_level ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @level@
+  -> IO Heif_error
+heif_encoder_set_logging_level =
+  \x0 ->
+    \level1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_528ef0518bd8ed17 x0 level1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_list_parameters@
+foreign import ccall unsafe "hs_bindgen_8ba729e891d005fb" hs_bindgen_8ba729e891d005fb_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_list_parameters@
+hs_bindgen_8ba729e891d005fb ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+hs_bindgen_8ba729e891d005fb =
+  BG.fromFFIType hs_bindgen_8ba729e891d005fb_base
+
+{-| __C declaration:__ @heif_encoder_list_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 147:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_list_parameters ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+heif_encoder_list_parameters =
+  hs_bindgen_8ba729e891d005fb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_name@
+foreign import ccall unsafe "hs_bindgen_0b37fad3bcbc1032" hs_bindgen_0b37fad3bcbc1032_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_name@
+hs_bindgen_0b37fad3bcbc1032 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_0b37fad3bcbc1032 =
+  BG.fromFFIType hs_bindgen_0b37fad3bcbc1032_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 151:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_name ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_parameter_get_name =
+  hs_bindgen_0b37fad3bcbc1032
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_type@
+foreign import ccall unsafe "hs_bindgen_effc6448978f082b" hs_bindgen_effc6448978f082b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_type@
+hs_bindgen_effc6448978f082b ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+hs_bindgen_effc6448978f082b =
+  BG.fromFFIType hs_bindgen_effc6448978f082b_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 163:34@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_type ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+heif_encoder_parameter_get_type =
+  hs_bindgen_effc6448978f082b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_range@
+foreign import ccall unsafe "hs_bindgen_9cc90071aaec91f3" hs_bindgen_9cc90071aaec91f3_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_range@
+hs_bindgen_9cc90071aaec91f3 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9cc90071aaec91f3 =
+  BG.fromFFIType hs_bindgen_9cc90071aaec91f3_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_range ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_range =
+  \x0 ->
+    \have_minimum_maximum1 ->
+      \minimum2 ->
+        \maximum3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_9cc90071aaec91f3 x0 have_minimum_maximum1 minimum2 maximum3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_values@
+foreign import ccall unsafe "hs_bindgen_050ff9ca987786fb" hs_bindgen_050ff9ca987786fb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_values@
+hs_bindgen_050ff9ca987786fb ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_050ff9ca987786fb =
+  BG.fromFFIType hs_bindgen_050ff9ca987786fb_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 174:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_values =
+  \x0 ->
+    \have_minimum1 ->
+      \have_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            \num_valid_values5 ->
+              \out_integer_array6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_050ff9ca987786fb x0 have_minimum1 have_maximum2 minimum3 maximum4 num_valid_values5 out_integer_array6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_string_values@
+foreign import ccall unsafe "hs_bindgen_349b7bf99e396f16" hs_bindgen_349b7bf99e396f16_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_string_values@
+hs_bindgen_349b7bf99e396f16 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_349b7bf99e396f16 =
+  BG.fromFFIType hs_bindgen_349b7bf99e396f16_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_string_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 181:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_string_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_string_values =
+  \x0 ->
+    \out_stringarray1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_349b7bf99e396f16 x0 out_stringarray1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_d653763347d1d09b" hs_bindgen_d653763347d1d09b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_integer@
+hs_bindgen_d653763347d1d09b ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d653763347d1d09b =
+  BG.fromFFIType hs_bindgen_d653763347d1d09b_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 186:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_d653763347d1d09b x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_2ad63a212716469e" hs_bindgen_2ad63a212716469e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_integer@
+hs_bindgen_2ad63a212716469e ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_2ad63a212716469e =
+  BG.fromFFIType hs_bindgen_2ad63a212716469e_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 191:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_2ad63a212716469e x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_range@
+foreign import ccall unsafe "hs_bindgen_d43bc70645423305" hs_bindgen_d43bc70645423305_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_range@
+hs_bindgen_d43bc70645423305 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d43bc70645423305 =
+  BG.fromFFIType hs_bindgen_d43bc70645423305_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_range ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_range =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_d43bc70645423305 x0 parameter_name1 have_minimum_maximum2 minimum3 maximum4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_d8ed4c246561cc69" hs_bindgen_d8ed4c246561cc69_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_boolean@
+hs_bindgen_d8ed4c246561cc69 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d8ed4c246561cc69 =
+  BG.fromFFIType hs_bindgen_d8ed4c246561cc69_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 203:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_d8ed4c246561cc69 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_ca3fbaeda04e9582" hs_bindgen_ca3fbaeda04e9582_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_boolean@
+hs_bindgen_ca3fbaeda04e9582 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ca3fbaeda04e9582 =
+  BG.fromFFIType hs_bindgen_ca3fbaeda04e9582_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 208:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_ca3fbaeda04e9582 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_string@
+foreign import ccall unsafe "hs_bindgen_908cf213e79a8290" hs_bindgen_908cf213e79a8290_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_string@
+hs_bindgen_908cf213e79a8290 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_908cf213e79a8290 =
+  BG.fromFFIType hs_bindgen_908cf213e79a8290_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 213:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_908cf213e79a8290 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_string@
+foreign import ccall unsafe "hs_bindgen_7285de07553fd7c4" hs_bindgen_7285de07553fd7c4_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_string@
+hs_bindgen_7285de07553fd7c4 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7285de07553fd7c4 =
+  BG.fromFFIType hs_bindgen_7285de07553fd7c4_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_7285de07553fd7c4 x0 parameter_name1 value2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_string_valid_values@
+foreign import ccall unsafe "hs_bindgen_67b0a8f7e96abb96" hs_bindgen_67b0a8f7e96abb96_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_string_valid_values@
+hs_bindgen_67b0a8f7e96abb96 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_67b0a8f7e96abb96 =
+  BG.fromFFIType hs_bindgen_67b0a8f7e96abb96_base
+
+{-| __C declaration:__ @heif_encoder_parameter_string_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 224:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_string_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_string_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \out_stringarray2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_67b0a8f7e96abb96 x0 parameter_name1 out_stringarray2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_values@
+foreign import ccall unsafe "hs_bindgen_837fd04e76a07e3c" hs_bindgen_837fd04e76a07e3c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_values@
+hs_bindgen_837fd04e76a07e3c ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_837fd04e76a07e3c =
+  BG.fromFFIType hs_bindgen_837fd04e76a07e3c_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 229:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum2 ->
+        \have_maximum3 ->
+          \minimum4 ->
+            \maximum5 ->
+              \num_valid_values6 ->
+                \out_integer_array7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_837fd04e76a07e3c x0 parameter_name1 have_minimum2 have_maximum3 minimum4 maximum5 num_valid_values6 out_integer_array7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter@
+foreign import ccall unsafe "hs_bindgen_26a36653bf79dc5e" hs_bindgen_26a36653bf79dc5e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter@
+hs_bindgen_26a36653bf79dc5e ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_26a36653bf79dc5e =
+  BG.fromFFIType hs_bindgen_26a36653bf79dc5e_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 246:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_26a36653bf79dc5e x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter@
+foreign import ccall unsafe "hs_bindgen_badf4585dea9cce8" hs_bindgen_badf4585dea9cce8_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter@
+hs_bindgen_badf4585dea9cce8 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_badf4585dea9cce8 =
+  BG.fromFFIType hs_bindgen_badf4585dea9cce8_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 253:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value_ptr@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value_ptr2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_badf4585dea9cce8 x0 parameter_name1 value_ptr2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_has_default@
+foreign import ccall unsafe "hs_bindgen_5f05e81fb1017506" hs_bindgen_5f05e81fb1017506_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_has_default@
+hs_bindgen_5f05e81fb1017506 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_5f05e81fb1017506 =
+  BG.fromFFIType hs_bindgen_5f05e81fb1017506_base
+
+{-| __C declaration:__ @heif_encoder_has_default@
+
+    __defined at:__ @libheif\/heif_encoding.h 259:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_has_default ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> IO BG.CInt
+heif_encoder_has_default =
+  hs_bindgen_5f05e81fb1017506
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_orientation_concat@
+foreign import ccall unsafe "hs_bindgen_5de65368b622937b" hs_bindgen_5de65368b622937b_base ::
+     BG.Word32
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_orientation_concat@
+hs_bindgen_5de65368b622937b ::
+     Heif_orientation
+  -> Heif_orientation
+  -> IO Heif_orientation
+hs_bindgen_5de65368b622937b =
+  BG.fromFFIType hs_bindgen_5de65368b622937b_base
+
+{-| __C declaration:__ @heif_orientation_concat@
+
+    __defined at:__ @libheif\/heif_encoding.h 278:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_orientation_concat ::
+     Heif_orientation
+     -- ^ __C declaration:__ @first@
+  -> Heif_orientation
+     -- ^ __C declaration:__ @second@
+  -> IO Heif_orientation
+heif_orientation_concat = hs_bindgen_5de65368b622937b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_a63382036a0c2ed6" hs_bindgen_a63382036a0c2ed6_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_alloc@
+hs_bindgen_a63382036a0c2ed6 :: IO (BG.Ptr Heif_encoding_options)
+hs_bindgen_a63382036a0c2ed6 =
+  BG.fromFFIType hs_bindgen_a63382036a0c2ed6_base
+
+{-| __C declaration:__ @heif_encoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_encoding.h 335:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_alloc :: IO (BG.Ptr Heif_encoding_options)
+heif_encoding_options_alloc =
+  hs_bindgen_a63382036a0c2ed6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_3a1ae325c063e780" hs_bindgen_3a1ae325c063e780_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_copy@
+hs_bindgen_3a1ae325c063e780 ::
+     BG.Ptr Heif_encoding_options
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> IO ()
+hs_bindgen_3a1ae325c063e780 =
+  BG.fromFFIType hs_bindgen_3a1ae325c063e780_base
+
+{-| __C declaration:__ @heif_encoding_options_copy@
+
+    __defined at:__ @libheif\/heif_encoding.h 338:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_copy ::
+     BG.Ptr Heif_encoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_encoding_options_copy =
+  hs_bindgen_3a1ae325c063e780
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_free@
+foreign import ccall unsafe "hs_bindgen_7e49924263fcce32" hs_bindgen_7e49924263fcce32_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_free@
+hs_bindgen_7e49924263fcce32 ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+hs_bindgen_7e49924263fcce32 =
+  BG.fromFFIType hs_bindgen_7e49924263fcce32_base
+
+{-| __C declaration:__ @heif_encoding_options_free@
+
+    __defined at:__ @libheif\/heif_encoding.h 341:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_free ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+heif_encoding_options_free =
+  hs_bindgen_7e49924263fcce32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_image@
+foreign import ccall unsafe "hs_bindgen_6ac3b36ffb994fd2" hs_bindgen_6ac3b36ffb994fd2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_image@
+hs_bindgen_6ac3b36ffb994fd2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6ac3b36ffb994fd2 =
+  BG.fromFFIType hs_bindgen_6ac3b36ffb994fd2_base
+
+{-| __C declaration:__ @heif_context_encode_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 350:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_image ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_image =
+  \x0 ->
+    \image1 ->
+      \encoder2 ->
+        \options3 ->
+          \out_image_handle4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_6ac3b36ffb994fd2 x0 image1 encoder2 options3 out_image_handle4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_overlay_image@
+foreign import ccall unsafe "hs_bindgen_1d9fc34edd017e95" hs_bindgen_1d9fc34edd017e95_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_overlay_image@
+hs_bindgen_1d9fc34edd017e95 ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word16
+  -> PtrConst.PtrConst Heif_item_id
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_1d9fc34edd017e95 =
+  BG.fromFFIType hs_bindgen_1d9fc34edd017e95_base
+
+{-| __C declaration:__ @heif_context_add_overlay_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 359:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_overlay_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @nImages@
+  -> PtrConst.PtrConst Heif_item_id
+     -- ^ __C declaration:__ @image_ids@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+     -- ^ __C declaration:__ @offsets@
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+     -- ^ __C declaration:__ @background_rgba@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_iovl_image_handle@
+  -> IO Heif_error
+heif_context_add_overlay_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \nImages3 ->
+          \image_ids4 ->
+            \offsets5 ->
+              \background_rgba6 ->
+                \out_iovl_image_handle7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_1d9fc34edd017e95 ctx0 image_width1 image_height2 nImages3 image_ids4 offsets5 background_rgba6 out_iovl_image_handle7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_primary_image@
+foreign import ccall unsafe "hs_bindgen_a78d763f0e72894b" hs_bindgen_a78d763f0e72894b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_primary_image@
+hs_bindgen_a78d763f0e72894b ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_a78d763f0e72894b =
+  BG.fromFFIType hs_bindgen_a78d763f0e72894b_base
+
+{-| __C declaration:__ @heif_context_set_primary_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 369:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_primary_image ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> IO Heif_error
+heif_context_set_primary_image =
+  \x0 ->
+    \image_handle1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_a78d763f0e72894b x0 image_handle1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_major_brand@
+foreign import ccall unsafe "hs_bindgen_7cfa31db45c6d2e0" hs_bindgen_7cfa31db45c6d2e0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_major_brand@
+hs_bindgen_7cfa31db45c6d2e0 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_7cfa31db45c6d2e0 =
+  BG.fromFFIType hs_bindgen_7cfa31db45c6d2e0_base
+
+{-| __C declaration:__ @heif_context_set_major_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 376:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_major_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @major_brand@
+  -> IO ()
+heif_context_set_major_brand =
+  hs_bindgen_7cfa31db45c6d2e0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_53369da73974a5c8" hs_bindgen_53369da73974a5c8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_compatible_brand@
+hs_bindgen_53369da73974a5c8 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_53369da73974a5c8 =
+  BG.fromFFIType hs_bindgen_53369da73974a5c8_base
+
+{-| __C declaration:__ @heif_context_add_compatible_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 381:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_compatible_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @compatible_brand@
+  -> IO ()
+heif_context_add_compatible_brand =
+  hs_bindgen_53369da73974a5c8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_unif@
+foreign import ccall unsafe "hs_bindgen_ee19be3747255a78" hs_bindgen_ee19be3747255a78_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_unif@
+hs_bindgen_ee19be3747255a78 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_ee19be3747255a78 =
+  BG.fromFFIType hs_bindgen_ee19be3747255a78_base
+
+{-| __C declaration:__ @heif_context_set_unif@
+
+    __defined at:__ @libheif\/heif_encoding.h 395:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_unif ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @flag@
+  -> IO ()
+heif_context_set_unif = hs_bindgen_ee19be3747255a78
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_6aa908eebd2da1c7" hs_bindgen_6aa908eebd2da1c7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossy_compression@
+hs_bindgen_6aa908eebd2da1c7 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_6aa908eebd2da1c7 =
+  BG.fromFFIType hs_bindgen_6aa908eebd2da1c7_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossy_compression =
+  hs_bindgen_6aa908eebd2da1c7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_ae780e3f1353c894" hs_bindgen_ae780e3f1353c894_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossless_compression@
+hs_bindgen_ae780e3f1353c894 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_ae780e3f1353c894 =
+  BG.fromFFIType hs_bindgen_ae780e3f1353c894_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 405:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossless_compression =
+  hs_bindgen_ae780e3f1353c894
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_2c76e06503a77574" hs_bindgen_2c76e06503a77574_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_descriptors@
+hs_bindgen_2c76e06503a77574 ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_2c76e06503a77574 =
+  BG.fromFFIType hs_bindgen_2c76e06503a77574_base
+
+{-| __C declaration:__ @heif_context_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 415:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_descriptors ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_encoder_descriptors =
+  hs_bindgen_2c76e06503a77574
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_87200925476eeec7" hs_bindgen_87200925476eeec7_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_max_decoding_threads@
+hs_bindgen_87200925476eeec7 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_87200925476eeec7 =
+  BG.fromFFIType hs_bindgen_87200925476eeec7_base
+
+{-| __C declaration:__ @heif_context_set_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 40:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_max_decoding_threads ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_threads@
+  -> IO ()
+heif_context_set_max_decoding_threads =
+  hs_bindgen_87200925476eeec7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_0c7154c9354fd286" hs_bindgen_0c7154c9354fd286_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_max_decoding_threads@
+hs_bindgen_0c7154c9354fd286 ::
+     PtrConst.PtrConst Heif_context
+  -> IO BG.CInt
+hs_bindgen_0c7154c9354fd286 =
+  BG.fromFFIType hs_bindgen_0c7154c9354fd286_base
+
+{-| __C declaration:__ @heif_context_get_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 47:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_max_decoding_threads ::
+     PtrConst.PtrConst Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_max_decoding_threads =
+  hs_bindgen_0c7154c9354fd286
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_decoder_for_format@
+foreign import ccall unsafe "hs_bindgen_42f0650f86196b25" hs_bindgen_42f0650f86196b25_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_decoder_for_format@
+hs_bindgen_42f0650f86196b25 ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_42f0650f86196b25 =
+  BG.fromFFIType hs_bindgen_42f0650f86196b25_base
+
+{-| __C declaration:__ @heif_have_decoder_for_format@
+
+    __defined at:__ @libheif\/heif_decoding.h 53:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_decoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_decoder_for_format =
+  hs_bindgen_42f0650f86196b25
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_9c5874c5219718b8" hs_bindgen_9c5874c5219718b8_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_alloc@
+hs_bindgen_9c5874c5219718b8 :: IO (BG.Ptr Heif_decoding_options)
+hs_bindgen_9c5874c5219718b8 =
+  BG.fromFFIType hs_bindgen_9c5874c5219718b8_base
+
+{-| __C declaration:__ @heif_decoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_decoding.h 165:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_alloc :: IO (BG.Ptr Heif_decoding_options)
+heif_decoding_options_alloc =
+  hs_bindgen_9c5874c5219718b8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_3b86db3999f11506" hs_bindgen_3b86db3999f11506_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_copy@
+hs_bindgen_3b86db3999f11506 ::
+     BG.Ptr Heif_decoding_options
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> IO ()
+hs_bindgen_3b86db3999f11506 =
+  BG.fromFFIType hs_bindgen_3b86db3999f11506_base
+
+{-| __C declaration:__ @heif_decoding_options_copy@
+
+    __defined at:__ @libheif\/heif_decoding.h 168:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_copy ::
+     BG.Ptr Heif_decoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_decoding_options_copy =
+  hs_bindgen_3b86db3999f11506
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_free@
+foreign import ccall unsafe "hs_bindgen_cf88ca791cd899fe" hs_bindgen_cf88ca791cd899fe_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_free@
+hs_bindgen_cf88ca791cd899fe ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+hs_bindgen_cf88ca791cd899fe =
+  BG.fromFFIType hs_bindgen_cf88ca791cd899fe_base
+
+{-| __C declaration:__ @heif_decoding_options_free@
+
+    __defined at:__ @libheif\/heif_decoding.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_free ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+heif_decoding_options_free =
+  hs_bindgen_cf88ca791cd899fe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_decoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_ab1f907a34ddc140" hs_bindgen_ab1f907a34ddc140_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_decoder_descriptors@
+hs_bindgen_ab1f907a34ddc140 ::
+     Heif_compression_format
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_ab1f907a34ddc140 =
+  BG.fromFFIType hs_bindgen_ab1f907a34ddc140_base
+
+{-| __C declaration:__ @heif_get_decoder_descriptors@
+
+    __defined at:__ @libheif\/heif_decoding.h 183:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_decoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+     -- ^ __C declaration:__ @out_decoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_decoder_descriptors =
+  hs_bindgen_ab1f907a34ddc140
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_b5afa8de744aaab5" hs_bindgen_b5afa8de744aaab5_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_name@
+hs_bindgen_b5afa8de744aaab5 ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_b5afa8de744aaab5 =
+  BG.fromFFIType hs_bindgen_b5afa8de744aaab5_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 189:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_name =
+  hs_bindgen_b5afa8de744aaab5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_7203e9b04a7a74dd" hs_bindgen_7203e9b04a7a74dd_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_id_name@
+hs_bindgen_7203e9b04a7a74dd ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_7203e9b04a7a74dd =
+  BG.fromFFIType hs_bindgen_7203e9b04a7a74dd_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 195:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_id_name =
+  hs_bindgen_7203e9b04a7a74dd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decode_image@
+foreign import ccall unsafe "hs_bindgen_9c566de5c30f008a" hs_bindgen_9c566de5c30f008a_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decode_image@
+hs_bindgen_9c566de5c30f008a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9c566de5c30f008a =
+  BG.fromFFIType hs_bindgen_9c566de5c30f008a_base
+
+{-| __C declaration:__ @heif_decode_image@
+
+    __defined at:__ @libheif\/heif_decoding.h 209:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decode_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_decode_image =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_9c566de5c30f008a in_handle0 out_img1 colorspace2 chroma3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release@
+foreign import ccall unsafe "hs_bindgen_28bf4adaa29e960b" hs_bindgen_28bf4adaa29e960b_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release@
+hs_bindgen_28bf4adaa29e960b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+hs_bindgen_28bf4adaa29e960b =
+  BG.fromFFIType hs_bindgen_28bf4adaa29e960b_base
+
+{-| __C declaration:__ @heif_image_handle_release@
+
+    __defined at:__ @libheif\/heif_image_handle.h 47:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+heif_image_handle_release =
+  hs_bindgen_28bf4adaa29e960b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_primary_image@
+foreign import ccall unsafe "hs_bindgen_9cd66a4acc781749" hs_bindgen_9cd66a4acc781749_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_primary_image@
+hs_bindgen_9cd66a4acc781749 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_9cd66a4acc781749 =
+  BG.fromFFIType hs_bindgen_9cd66a4acc781749_base
+
+{-| __C declaration:__ @heif_image_handle_is_primary_image@
+
+    __defined at:__ @libheif\/heif_image_handle.h 51:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_primary_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_is_primary_image =
+  hs_bindgen_9cd66a4acc781749
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_item_id@
+foreign import ccall unsafe "hs_bindgen_883fc3dc3fc5532a" hs_bindgen_883fc3dc3fc5532a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_item_id@
+hs_bindgen_883fc3dc3fc5532a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_item_id
+hs_bindgen_883fc3dc3fc5532a =
+  BG.fromFFIType hs_bindgen_883fc3dc3fc5532a_base
+
+{-| __C declaration:__ @heif_image_handle_get_item_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_item_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_item_id
+heif_image_handle_get_item_id =
+  hs_bindgen_883fc3dc3fc5532a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_width@
+foreign import ccall unsafe "hs_bindgen_0bcd25e50e8763ba" hs_bindgen_0bcd25e50e8763ba_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_width@
+hs_bindgen_0bcd25e50e8763ba ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_0bcd25e50e8763ba =
+  BG.fromFFIType hs_bindgen_0bcd25e50e8763ba_base
+
+{-| __C declaration:__ @heif_image_handle_get_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 61:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_width =
+  hs_bindgen_0bcd25e50e8763ba
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_height@
+foreign import ccall unsafe "hs_bindgen_bd94a464a89cccfb" hs_bindgen_bd94a464a89cccfb_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_height@
+hs_bindgen_bd94a464a89cccfb ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_bd94a464a89cccfb =
+  BG.fromFFIType hs_bindgen_bd94a464a89cccfb_base
+
+{-| __C declaration:__ @heif_image_handle_get_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 68:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_height =
+  hs_bindgen_bd94a464a89cccfb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_alpha_channel@
+foreign import ccall unsafe "hs_bindgen_019a58dabf17e62f" hs_bindgen_019a58dabf17e62f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_alpha_channel@
+hs_bindgen_019a58dabf17e62f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_019a58dabf17e62f =
+  BG.fromFFIType hs_bindgen_019a58dabf17e62f_base
+
+{-| __C declaration:__ @heif_image_handle_has_alpha_channel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 71:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_alpha_channel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_alpha_channel =
+  hs_bindgen_019a58dabf17e62f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_07e4281a42d682d8" hs_bindgen_07e4281a42d682d8_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_premultiplied_alpha@
+hs_bindgen_07e4281a42d682d8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_07e4281a42d682d8 =
+  BG.fromFFIType hs_bindgen_07e4281a42d682d8_base
+
+{-| __C declaration:__ @heif_image_handle_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image_handle.h 74:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_premultiplied_alpha ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_is_premultiplied_alpha =
+  hs_bindgen_07e4281a42d682d8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_luma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_bd8920bbdfc607cb" hs_bindgen_bd8920bbdfc607cb_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_luma_bits_per_pixel@
+hs_bindgen_bd8920bbdfc607cb ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_bd8920bbdfc607cb =
+  BG.fromFFIType hs_bindgen_bd8920bbdfc607cb_base
+
+{-| __C declaration:__ @heif_image_handle_get_luma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 79:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_luma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_luma_bits_per_pixel =
+  hs_bindgen_bd8920bbdfc607cb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_chroma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_4a9b5e4f4022f165" hs_bindgen_4a9b5e4f4022f165_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_chroma_bits_per_pixel@
+hs_bindgen_4a9b5e4f4022f165 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_4a9b5e4f4022f165 =
+  BG.fromFFIType hs_bindgen_4a9b5e4f4022f165_base
+
+{-| __C declaration:__ @heif_image_handle_get_chroma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 84:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_chroma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_chroma_bits_per_pixel =
+  hs_bindgen_4a9b5e4f4022f165
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_preferred_decoding_colorspace@
+foreign import ccall unsafe "hs_bindgen_5866c7e268ce84a7" hs_bindgen_5866c7e268ce84a7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_preferred_decoding_colorspace@
+hs_bindgen_5866c7e268ce84a7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_colorspace
+  -> BG.Ptr Heif_chroma
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5866c7e268ce84a7 =
+  BG.fromFFIType hs_bindgen_5866c7e268ce84a7_base
+
+{-| __C declaration:__ @heif_image_handle_get_preferred_decoding_colorspace@
+
+    __defined at:__ @libheif\/heif_image_handle.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_preferred_decoding_colorspace ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> BG.Ptr Heif_colorspace
+     -- ^ __C declaration:__ @out_colorspace@
+  -> BG.Ptr Heif_chroma
+     -- ^ __C declaration:__ @out_chroma@
+  -> IO Heif_error
+heif_image_handle_get_preferred_decoding_colorspace =
+  \image_handle0 ->
+    \out_colorspace1 ->
+      \out_chroma2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_5866c7e268ce84a7 image_handle0 out_colorspace1 out_chroma2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_width@
+foreign import ccall unsafe "hs_bindgen_4ac86f0a6dddfea5" hs_bindgen_4ac86f0a6dddfea5_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_width@
+hs_bindgen_4ac86f0a6dddfea5 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_4ac86f0a6dddfea5 =
+  BG.fromFFIType hs_bindgen_4ac86f0a6dddfea5_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 110:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_width =
+  hs_bindgen_4ac86f0a6dddfea5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_height@
+foreign import ccall unsafe "hs_bindgen_d6a6f34b63a7c18c" hs_bindgen_d6a6f34b63a7c18c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_height@
+hs_bindgen_d6a6f34b63a7c18c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d6a6f34b63a7c18c =
+  BG.fromFFIType hs_bindgen_d6a6f34b63a7c18c_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_height =
+  hs_bindgen_d6a6f34b63a7c18c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_5b65c4e9e89d0618" hs_bindgen_5b65c4e9e89d0618_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_pixel_aspect_ratio@
+hs_bindgen_5b65c4e9e89d0618 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_5b65c4e9e89d0618 =
+  BG.fromFFIType hs_bindgen_5b65c4e9e89d0618_base
+
+{-| __C declaration:__ @heif_image_handle_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image_handle.h 117:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO BG.CInt
+heif_image_handle_get_pixel_aspect_ratio =
+  hs_bindgen_5b65c4e9e89d0618
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_context@
+foreign import ccall unsafe "hs_bindgen_416f140cd405607c" hs_bindgen_416f140cd405607c_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_context@
+hs_bindgen_416f140cd405607c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (BG.Ptr Heif_context)
+hs_bindgen_416f140cd405607c =
+  BG.fromFFIType hs_bindgen_416f140cd405607c_base
+
+{-| __C declaration:__ @heif_image_handle_get_context@
+
+    __defined at:__ @libheif\/heif_image_handle.h 129:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_context ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (BG.Ptr Heif_context)
+heif_image_handle_get_context =
+  hs_bindgen_416f140cd405607c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_9d6713702978e3f4" hs_bindgen_9d6713702978e3f4_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_content_id@
+hs_bindgen_9d6713702978e3f4 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_9d6713702978e3f4 =
+  BG.fromFFIType hs_bindgen_9d6713702978e3f4_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 132:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_content_id =
+  hs_bindgen_9d6713702978e3f4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_f107d82f17708377" hs_bindgen_f107d82f17708377_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_content_id@
+hs_bindgen_f107d82f17708377 ::
+     BG.Ptr Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_f107d82f17708377 =
+  BG.fromFFIType hs_bindgen_f107d82f17708377_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 135:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_content_id ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_content_id =
+  hs_bindgen_f107d82f17708377
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_cmpd_components@
+foreign import ccall unsafe "hs_bindgen_d241b0dabaa4529a" hs_bindgen_d241b0dabaa4529a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_cmpd_components@
+hs_bindgen_d241b0dabaa4529a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_d241b0dabaa4529a =
+  BG.fromFFIType hs_bindgen_d241b0dabaa4529a_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_cmpd_components@
+
+    __defined at:__ @libheif\/heif_image_handle.h 142:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_cmpd_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_cmpd_components =
+  hs_bindgen_d241b0dabaa4529a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type@
+foreign import ccall unsafe "hs_bindgen_f849f5a5579d0d53" hs_bindgen_f849f5a5579d0d53_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type@
+hs_bindgen_f849f5a5579d0d53 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_f849f5a5579d0d53 =
+  BG.fromFFIType hs_bindgen_f849f5a5579d0d53_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_image_handle.h 147:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_cmpd_component_type =
+  hs_bindgen_f849f5a5579d0d53
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type_uri@
+foreign import ccall unsafe "hs_bindgen_f0f8fe1e51403813" hs_bindgen_f0f8fe1e51403813_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type_uri@
+hs_bindgen_f0f8fe1e51403813 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_f0f8fe1e51403813 =
+  BG.fromFFIType hs_bindgen_f0f8fe1e51403813_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type_uri@
+
+    __defined at:__ @libheif\/heif_image_handle.h 153:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type_uri ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_cmpd_component_type_uri =
+  hs_bindgen_f0f8fe1e51403813
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_gimi_component_content_ids@
+foreign import ccall unsafe "hs_bindgen_8f5d4dfd76b35269" hs_bindgen_8f5d4dfd76b35269_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_gimi_component_content_ids@
+hs_bindgen_8f5d4dfd76b35269 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_8f5d4dfd76b35269 =
+  BG.fromFFIType hs_bindgen_8f5d4dfd76b35269_base
+
+{-| __C declaration:__ @heif_image_handle_has_gimi_component_content_ids@
+
+    __defined at:__ @libheif\/heif_image_handle.h 160:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_gimi_component_content_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_gimi_component_content_ids =
+  hs_bindgen_8f5d4dfd76b35269
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_4c964b2acbe2715a" hs_bindgen_4c964b2acbe2715a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_component_content_id@
+hs_bindgen_4c964b2acbe2715a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_4c964b2acbe2715a =
+  BG.fromFFIType hs_bindgen_4c964b2acbe2715a_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 166:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_component_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_component_content_id =
+  hs_bindgen_4c964b2acbe2715a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_b545cf8f497992ae" hs_bindgen_b545cf8f497992ae_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_component_content_id@
+hs_bindgen_b545cf8f497992ae ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_b545cf8f497992ae =
+  BG.fromFFIType hs_bindgen_b545cf8f497992ae_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_component_content_id ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_component_content_id =
+  hs_bindgen_b545cf8f497992ae
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_image_tiling@
+foreign import ccall unsafe "hs_bindgen_44591d28e788d50c" hs_bindgen_44591d28e788d50c_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_image_tiling@
+hs_bindgen_44591d28e788d50c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_image_tiling
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_44591d28e788d50c =
+  BG.fromFFIType hs_bindgen_44591d28e788d50c_base
+
+{-| __C declaration:__ @heif_image_handle_get_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 67:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_image_tiling ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> BG.Ptr Heif_image_tiling
+     -- ^ __C declaration:__ @out_tiling@
+  -> IO Heif_error
+heif_image_handle_get_image_tiling =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \out_tiling2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_44591d28e788d50c handle0 process_image_transformations1 out_tiling2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_grid_image_tile_id@
+foreign import ccall unsafe "hs_bindgen_aaf84ee2e27e5f15" hs_bindgen_aaf84ee2e27e5f15_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_grid_image_tile_id@
+hs_bindgen_aaf84ee2e27e5f15 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_aaf84ee2e27e5f15 =
+  BG.fromFFIType hs_bindgen_aaf84ee2e27e5f15_base
+
+{-| __C declaration:__ @heif_image_handle_get_grid_image_tile_id@
+
+    __defined at:__ @libheif\/heif_tiling.h 74:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_grid_image_tile_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_tile_item_id@
+  -> IO Heif_error
+heif_image_handle_get_grid_image_tile_id =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \out_tile_item_id4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_aaf84ee2e27e5f15 handle0 process_image_transformations1 tile_x2 tile_y3 out_tile_item_id4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_decode_image_tile@
+foreign import ccall unsafe "hs_bindgen_71d50457a2e7f14b" hs_bindgen_71d50457a2e7f14b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_decode_image_tile@
+hs_bindgen_71d50457a2e7f14b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_71d50457a2e7f14b =
+  BG.fromFFIType hs_bindgen_71d50457a2e7f14b_base
+
+{-| __C declaration:__ @heif_image_handle_decode_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 86:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_decode_image_tile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> IO Heif_error
+heif_image_handle_decode_image_tile =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            \tile_x5 ->
+              \tile_y6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_71d50457a2e7f14b in_handle0 out_img1 colorspace2 chroma3 options4 tile_x5 tile_y6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_grid@
+foreign import ccall unsafe "hs_bindgen_b6f1896d3842bb1b" hs_bindgen_b6f1896d3842bb1b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_grid@
+hs_bindgen_b6f1896d3842bb1b ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> HsBindgen.Runtime.LibC.Word16
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b6f1896d3842bb1b =
+  BG.fromFFIType hs_bindgen_b6f1896d3842bb1b_base
+
+{-| __C declaration:__ @heif_context_encode_grid@
+
+    __defined at:__ @libheif\/heif_tiling.h 109:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_grid ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @tiles@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @rows@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @columns@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @input_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_grid =
+  \ctx0 ->
+    \tiles1 ->
+      \rows2 ->
+        \columns3 ->
+          \encoder4 ->
+            \input_options5 ->
+              \out_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_b6f1896d3842bb1b ctx0 tiles1 rows2 columns3 encoder4 input_options5 out_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_grid_image@
+foreign import ccall unsafe "hs_bindgen_c0099c7d4964643d" hs_bindgen_c0099c7d4964643d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_grid_image@
+hs_bindgen_c0099c7d4964643d ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_c0099c7d4964643d =
+  BG.fromFFIType hs_bindgen_c0099c7d4964643d_base
+
+{-| __C declaration:__ @heif_context_add_grid_image@
+
+    __defined at:__ @libheif\/heif_tiling.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_grid_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_columns@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_rows@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @encoding_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_grid_image_handle@
+  -> IO Heif_error
+heif_context_add_grid_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \tile_columns3 ->
+          \tile_rows4 ->
+            \encoding_options5 ->
+              \out_grid_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_c0099c7d4964643d ctx0 image_width1 image_height2 tile_columns3 tile_rows4 encoding_options5 out_grid_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_image_tile@
+foreign import ccall unsafe "hs_bindgen_188355cccd5fdf14" hs_bindgen_188355cccd5fdf14_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_image_tile@
+hs_bindgen_188355cccd5fdf14 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_188355cccd5fdf14 =
+  BG.fromFFIType hs_bindgen_188355cccd5fdf14_base
+
+{-| __C declaration:__ @heif_context_add_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 127:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_image_tile ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @tiled_image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> IO Heif_error
+heif_context_add_image_tile =
+  \ctx0 ->
+    \tiled_image1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \image4 ->
+            \encoder5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_188355cccd5fdf14 ctx0 tiled_image1 tile_x2 tile_y3 image4 encoder5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_number_of_used_components@
+foreign import ccall unsafe "hs_bindgen_92d950ffdc2de847" hs_bindgen_92d950ffdc2de847_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_number_of_used_components@
+hs_bindgen_92d950ffdc2de847 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_92d950ffdc2de847 =
+  BG.fromFFIType hs_bindgen_92d950ffdc2de847_base
+
+{-| __C declaration:__ @heif_image_get_number_of_used_components@
+
+    __defined at:__ @libheif\/heif_components.h 96:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_number_of_used_components ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_number_of_used_components =
+  hs_bindgen_92d950ffdc2de847
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_50b42d71ed1d2033" hs_bindgen_50b42d71ed1d2033_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_used_component_ids@
+hs_bindgen_50b42d71ed1d2033 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_50b42d71ed1d2033 =
+  BG.fromFFIType hs_bindgen_50b42d71ed1d2033_base
+
+{-| __C declaration:__ @heif_image_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 101:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_get_used_component_ids =
+  hs_bindgen_50b42d71ed1d2033
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_channel@
+foreign import ccall unsafe "hs_bindgen_d7d8117bfd051b7c" hs_bindgen_d7d8117bfd051b7c_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_channel@
+hs_bindgen_d7d8117bfd051b7c ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_channel
+hs_bindgen_d7d8117bfd051b7c =
+  BG.fromFFIType hs_bindgen_d7d8117bfd051b7c_base
+
+{-| __C declaration:__ @heif_image_get_component_channel@
+
+    __defined at:__ @libheif\/heif_components.h 104:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_channel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_channel
+heif_image_get_component_channel =
+  hs_bindgen_d7d8117bfd051b7c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_width@
+foreign import ccall unsafe "hs_bindgen_d27f543b4e39211d" hs_bindgen_d27f543b4e39211d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_width@
+hs_bindgen_d27f543b4e39211d ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_d27f543b4e39211d =
+  BG.fromFFIType hs_bindgen_d27f543b4e39211d_base
+
+{-| __C declaration:__ @heif_image_get_component_width@
+
+    __defined at:__ @libheif\/heif_components.h 107:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_width ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_width =
+  hs_bindgen_d27f543b4e39211d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_height@
+foreign import ccall unsafe "hs_bindgen_a5924fcf635470b3" hs_bindgen_a5924fcf635470b3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_height@
+hs_bindgen_a5924fcf635470b3 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_a5924fcf635470b3 =
+  BG.fromFFIType hs_bindgen_a5924fcf635470b3_base
+
+{-| __C declaration:__ @heif_image_get_component_height@
+
+    __defined at:__ @libheif\/heif_components.h 110:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_height ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_height =
+  hs_bindgen_a5924fcf635470b3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_212a3558eb9bbb38" hs_bindgen_212a3558eb9bbb38_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_bits_per_pixel@
+hs_bindgen_212a3558eb9bbb38 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_212a3558eb9bbb38 =
+  BG.fromFFIType hs_bindgen_212a3558eb9bbb38_base
+
+{-| __C declaration:__ @heif_image_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_get_component_bits_per_pixel =
+  hs_bindgen_212a3558eb9bbb38
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_type@
+foreign import ccall unsafe "hs_bindgen_2a65608da4a96b45" hs_bindgen_2a65608da4a96b45_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_type@
+hs_bindgen_2a65608da4a96b45 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_2a65608da4a96b45 =
+  BG.fromFFIType hs_bindgen_2a65608da4a96b45_base
+
+{-| __C declaration:__ @heif_image_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 116:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_type ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_get_component_type =
+  hs_bindgen_2a65608da4a96b45
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_5d0c49abeb7489aa" hs_bindgen_5d0c49abeb7489aa_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_datatype@
+hs_bindgen_5d0c49abeb7489aa ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_5d0c49abeb7489aa =
+  BG.fromFFIType hs_bindgen_5d0c49abeb7489aa_base
+
+{-| __C declaration:__ @heif_image_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 121:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_datatype ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_get_component_datatype =
+  hs_bindgen_5d0c49abeb7489aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_components@
+foreign import ccall unsafe "hs_bindgen_3e577779e550a986" hs_bindgen_3e577779e550a986_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_components@
+hs_bindgen_3e577779e550a986 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_3e577779e550a986 =
+  BG.fromFFIType hs_bindgen_3e577779e550a986_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_components@
+
+    __defined at:__ @libheif\/heif_components.h 136:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_components =
+  hs_bindgen_3e577779e550a986
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_3de5a3a45cf894db" hs_bindgen_3de5a3a45cf894db_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_used_component_ids@
+hs_bindgen_3de5a3a45cf894db ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_3de5a3a45cf894db =
+  BG.fromFFIType hs_bindgen_3de5a3a45cf894db_base
+
+{-| __C declaration:__ @heif_image_handle_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 142:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_handle_get_used_component_ids =
+  hs_bindgen_3de5a3a45cf894db
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_type@
+foreign import ccall unsafe "hs_bindgen_a672d180928a4092" hs_bindgen_a672d180928a4092_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_type@
+hs_bindgen_a672d180928a4092 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_a672d180928a4092 =
+  BG.fromFFIType hs_bindgen_a672d180928a4092_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 145:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_component_type =
+  hs_bindgen_a672d180928a4092
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_d6755ff0da5d47f0" hs_bindgen_d6755ff0da5d47f0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_bits_per_pixel@
+hs_bindgen_d6755ff0da5d47f0 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_d6755ff0da5d47f0 =
+  BG.fromFFIType hs_bindgen_d6755ff0da5d47f0_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_handle_get_component_bits_per_pixel =
+  hs_bindgen_d6755ff0da5d47f0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_4b42fd1e2f6c1b06" hs_bindgen_4b42fd1e2f6c1b06_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_datatype@
+hs_bindgen_4b42fd1e2f6c1b06 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_4b42fd1e2f6c1b06 =
+  BG.fromFFIType hs_bindgen_4b42fd1e2f6c1b06_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 151:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_datatype ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_handle_get_component_datatype =
+  hs_bindgen_4b42fd1e2f6c1b06
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_component@
+foreign import ccall unsafe "hs_bindgen_97edbd3d5283c85d" hs_bindgen_97edbd3d5283c85d_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Word16
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_component@
+hs_bindgen_97edbd3d5283c85d ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word16
+  -> Heif_component_datatype
+  -> BG.CInt
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_97edbd3d5283c85d =
+  BG.fromFFIType hs_bindgen_97edbd3d5283c85d_base
+
+{-| __C declaration:__ @heif_image_add_component@
+
+    __defined at:__ @libheif\/heif_components.h 157:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_component ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @component_type@
+  -> Heif_component_datatype
+     -- ^ __C declaration:__ @datatype@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_id@
+  -> IO Heif_error
+heif_image_add_component =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        \component_type3 ->
+          \datatype4 ->
+            \bit_depth5 ->
+              \out_component_id6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_97edbd3d5283c85d image0 width1 height2 component_type3 datatype4 bit_depth5 out_component_id6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_readonly@
+foreign import ccall unsafe "hs_bindgen_41c5204933fd6b05" hs_bindgen_41c5204933fd6b05_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_readonly@
+hs_bindgen_41c5204933fd6b05 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_41c5204933fd6b05 =
+  BG.fromFFIType hs_bindgen_41c5204933fd6b05_base
+
+{-| __C declaration:__ @heif_image_get_component_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 168:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component_readonly =
+  hs_bindgen_41c5204933fd6b05
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component@
+foreign import ccall unsafe "hs_bindgen_c588ded2a4e43ed3" hs_bindgen_c588ded2a4e43ed3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component@
+hs_bindgen_c588ded2a4e43ed3 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_c588ded2a4e43ed3 =
+  BG.fromFFIType hs_bindgen_c588ded2a4e43ed3_base
+
+{-| __C declaration:__ @heif_image_get_component@
+
+    __defined at:__ @libheif\/heif_components.h 171:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component =
+  hs_bindgen_c588ded2a4e43ed3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16_readonly@
+foreign import ccall unsafe "hs_bindgen_a0c133d2f6cf6ecb" hs_bindgen_a0c133d2f6cf6ecb_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16_readonly@
+hs_bindgen_a0c133d2f6cf6ecb ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_a0c133d2f6cf6ecb =
+  BG.fromFFIType hs_bindgen_a0c133d2f6cf6ecb_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 180:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16_readonly =
+  hs_bindgen_a0c133d2f6cf6ecb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16@
+foreign import ccall unsafe "hs_bindgen_df23dc13cfbceb66" hs_bindgen_df23dc13cfbceb66_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16@
+hs_bindgen_df23dc13cfbceb66 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_df23dc13cfbceb66 =
+  BG.fromFFIType hs_bindgen_df23dc13cfbceb66_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16@
+
+    __defined at:__ @libheif\/heif_components.h 183:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16 =
+  hs_bindgen_df23dc13cfbceb66
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32_readonly@
+foreign import ccall unsafe "hs_bindgen_04f19447334809a3" hs_bindgen_04f19447334809a3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32_readonly@
+hs_bindgen_04f19447334809a3 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_04f19447334809a3 =
+  BG.fromFFIType hs_bindgen_04f19447334809a3_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 186:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32_readonly =
+  hs_bindgen_04f19447334809a3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32@
+foreign import ccall unsafe "hs_bindgen_685261e63a2699dc" hs_bindgen_685261e63a2699dc_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32@
+hs_bindgen_685261e63a2699dc ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_685261e63a2699dc =
+  BG.fromFFIType hs_bindgen_685261e63a2699dc_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32@
+
+    __defined at:__ @libheif\/heif_components.h 189:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32 =
+  hs_bindgen_685261e63a2699dc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64_readonly@
+foreign import ccall unsafe "hs_bindgen_d36a1f5767c400a9" hs_bindgen_d36a1f5767c400a9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64_readonly@
+hs_bindgen_d36a1f5767c400a9 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_d36a1f5767c400a9 =
+  BG.fromFFIType hs_bindgen_d36a1f5767c400a9_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 192:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64_readonly =
+  hs_bindgen_d36a1f5767c400a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64@
+foreign import ccall unsafe "hs_bindgen_54efeef674e4787a" hs_bindgen_54efeef674e4787a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64@
+hs_bindgen_54efeef674e4787a ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_54efeef674e4787a =
+  BG.fromFFIType hs_bindgen_54efeef674e4787a_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64@
+
+    __defined at:__ @libheif\/heif_components.h 195:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64 =
+  hs_bindgen_54efeef674e4787a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8_readonly@
+foreign import ccall unsafe "hs_bindgen_6d8f578fb4b8f599" hs_bindgen_6d8f578fb4b8f599_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8_readonly@
+hs_bindgen_6d8f578fb4b8f599 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_6d8f578fb4b8f599 =
+  BG.fromFFIType hs_bindgen_6d8f578fb4b8f599_base
+
+{-| __C declaration:__ @heif_image_get_component_int8_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 198:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8_readonly =
+  hs_bindgen_6d8f578fb4b8f599
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8@
+foreign import ccall unsafe "hs_bindgen_0571e5bd586c7239" hs_bindgen_0571e5bd586c7239_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8@
+hs_bindgen_0571e5bd586c7239 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_0571e5bd586c7239 =
+  BG.fromFFIType hs_bindgen_0571e5bd586c7239_base
+
+{-| __C declaration:__ @heif_image_get_component_int8@
+
+    __defined at:__ @libheif\/heif_components.h 201:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8 =
+  hs_bindgen_0571e5bd586c7239
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16_readonly@
+foreign import ccall unsafe "hs_bindgen_75635c2481355b9d" hs_bindgen_75635c2481355b9d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16_readonly@
+hs_bindgen_75635c2481355b9d ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_75635c2481355b9d =
+  BG.fromFFIType hs_bindgen_75635c2481355b9d_base
+
+{-| __C declaration:__ @heif_image_get_component_int16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 204:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16_readonly =
+  hs_bindgen_75635c2481355b9d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16@
+foreign import ccall unsafe "hs_bindgen_c1e147a254585429" hs_bindgen_c1e147a254585429_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16@
+hs_bindgen_c1e147a254585429 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_c1e147a254585429 =
+  BG.fromFFIType hs_bindgen_c1e147a254585429_base
+
+{-| __C declaration:__ @heif_image_get_component_int16@
+
+    __defined at:__ @libheif\/heif_components.h 207:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16 =
+  hs_bindgen_c1e147a254585429
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32_readonly@
+foreign import ccall unsafe "hs_bindgen_c63eb568cec8ad9f" hs_bindgen_c63eb568cec8ad9f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32_readonly@
+hs_bindgen_c63eb568cec8ad9f ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_c63eb568cec8ad9f =
+  BG.fromFFIType hs_bindgen_c63eb568cec8ad9f_base
+
+{-| __C declaration:__ @heif_image_get_component_int32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 210:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32_readonly =
+  hs_bindgen_c63eb568cec8ad9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32@
+foreign import ccall unsafe "hs_bindgen_dd8ada136a08e398" hs_bindgen_dd8ada136a08e398_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32@
+hs_bindgen_dd8ada136a08e398 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_dd8ada136a08e398 =
+  BG.fromFFIType hs_bindgen_dd8ada136a08e398_base
+
+{-| __C declaration:__ @heif_image_get_component_int32@
+
+    __defined at:__ @libheif\/heif_components.h 213:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32 =
+  hs_bindgen_dd8ada136a08e398
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64_readonly@
+foreign import ccall unsafe "hs_bindgen_3f4ad7985062f4b4" hs_bindgen_3f4ad7985062f4b4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64_readonly@
+hs_bindgen_3f4ad7985062f4b4 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_3f4ad7985062f4b4 =
+  BG.fromFFIType hs_bindgen_3f4ad7985062f4b4_base
+
+{-| __C declaration:__ @heif_image_get_component_int64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 216:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64_readonly =
+  hs_bindgen_3f4ad7985062f4b4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64@
+foreign import ccall unsafe "hs_bindgen_0ec9f92992fb98b3" hs_bindgen_0ec9f92992fb98b3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64@
+hs_bindgen_0ec9f92992fb98b3 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_0ec9f92992fb98b3 =
+  BG.fromFFIType hs_bindgen_0ec9f92992fb98b3_base
+
+{-| __C declaration:__ @heif_image_get_component_int64@
+
+    __defined at:__ @libheif\/heif_components.h 219:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64 =
+  hs_bindgen_0ec9f92992fb98b3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32_readonly@
+foreign import ccall unsafe "hs_bindgen_23f11ff4a331711a" hs_bindgen_23f11ff4a331711a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32_readonly@
+hs_bindgen_23f11ff4a331711a ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CFloat)
+hs_bindgen_23f11ff4a331711a =
+  BG.fromFFIType hs_bindgen_23f11ff4a331711a_base
+
+{-| __C declaration:__ @heif_image_get_component_float32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 222:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CFloat)
+heif_image_get_component_float32_readonly =
+  hs_bindgen_23f11ff4a331711a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32@
+foreign import ccall unsafe "hs_bindgen_4b3f20877e3bea63" hs_bindgen_4b3f20877e3bea63_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32@
+hs_bindgen_4b3f20877e3bea63 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CFloat)
+hs_bindgen_4b3f20877e3bea63 =
+  BG.fromFFIType hs_bindgen_4b3f20877e3bea63_base
+
+{-| __C declaration:__ @heif_image_get_component_float32@
+
+    __defined at:__ @libheif\/heif_components.h 225:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CFloat)
+heif_image_get_component_float32 =
+  hs_bindgen_4b3f20877e3bea63
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64_readonly@
+foreign import ccall unsafe "hs_bindgen_f12ea4b15194e665" hs_bindgen_f12ea4b15194e665_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64_readonly@
+hs_bindgen_f12ea4b15194e665 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CDouble)
+hs_bindgen_f12ea4b15194e665 =
+  BG.fromFFIType hs_bindgen_f12ea4b15194e665_base
+
+{-| __C declaration:__ @heif_image_get_component_float64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 228:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CDouble)
+heif_image_get_component_float64_readonly =
+  hs_bindgen_f12ea4b15194e665
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64@
+foreign import ccall unsafe "hs_bindgen_ca1c705a0dd0055e" hs_bindgen_ca1c705a0dd0055e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64@
+hs_bindgen_ca1c705a0dd0055e ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CDouble)
+hs_bindgen_ca1c705a0dd0055e =
+  BG.fromFFIType hs_bindgen_ca1c705a0dd0055e_base
+
+{-| __C declaration:__ @heif_image_get_component_float64@
+
+    __defined at:__ @libheif\/heif_components.h 231:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CDouble)
+heif_image_get_component_float64 =
+  hs_bindgen_ca1c705a0dd0055e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32_readonly@
+foreign import ccall unsafe "hs_bindgen_a98fe7eded61994f" hs_bindgen_a98fe7eded61994f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32_readonly@
+hs_bindgen_a98fe7eded61994f ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex32)
+hs_bindgen_a98fe7eded61994f =
+  BG.fromFFIType hs_bindgen_a98fe7eded61994f_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 234:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex32)
+heif_image_get_component_complex32_readonly =
+  hs_bindgen_a98fe7eded61994f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32@
+foreign import ccall unsafe "hs_bindgen_d6ca0ebc868780f0" hs_bindgen_d6ca0ebc868780f0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32@
+hs_bindgen_d6ca0ebc868780f0 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex32)
+hs_bindgen_d6ca0ebc868780f0 =
+  BG.fromFFIType hs_bindgen_d6ca0ebc868780f0_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 237:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex32)
+heif_image_get_component_complex32 =
+  hs_bindgen_d6ca0ebc868780f0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64_readonly@
+foreign import ccall unsafe "hs_bindgen_bad0deef2747e198" hs_bindgen_bad0deef2747e198_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64_readonly@
+hs_bindgen_bad0deef2747e198 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex64)
+hs_bindgen_bad0deef2747e198 =
+  BG.fromFFIType hs_bindgen_bad0deef2747e198_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 240:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex64)
+heif_image_get_component_complex64_readonly =
+  hs_bindgen_bad0deef2747e198
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64@
+foreign import ccall unsafe "hs_bindgen_d421676f6243ada6" hs_bindgen_d421676f6243ada6_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64@
+hs_bindgen_d421676f6243ada6 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex64)
+hs_bindgen_d421676f6243ada6 =
+  BG.fromFFIType hs_bindgen_d421676f6243ada6_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 243:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex64)
+heif_image_get_component_complex64 =
+  hs_bindgen_d421676f6243ada6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_e6f35aaf095c291e" hs_bindgen_e6f35aaf095c291e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_gimi_component_content_id@
+hs_bindgen_e6f35aaf095c291e ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e6f35aaf095c291e =
+  BG.fromFFIType hs_bindgen_e6f35aaf095c291e_base
+
+{-| __C declaration:__ @heif_image_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_components.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_gimi_component_content_id ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO Heif_error
+heif_image_set_gimi_component_content_id =
+  \x0 ->
+    \component_id1 ->
+      \content_id2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_e6f35aaf095c291e x0 component_id1 content_id2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_8c10fbaea42a19e7" hs_bindgen_8c10fbaea42a19e7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_omaf_image_projection@
+hs_bindgen_8c10fbaea42a19e7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_omaf_image_projection
+hs_bindgen_8c10fbaea42a19e7 =
+  BG.fromFFIType hs_bindgen_8c10fbaea42a19e7_base
+
+{-| __C declaration:__ @heif_image_handle_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 83:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_omaf_image_projection
+heif_image_handle_get_omaf_image_projection =
+  hs_bindgen_8c10fbaea42a19e7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_3affee0f8870d4ec" hs_bindgen_3affee0f8870d4ec_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_omaf_image_projection@
+hs_bindgen_3affee0f8870d4ec ::
+     BG.Ptr Heif_image_handle
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_3affee0f8870d4ec =
+  BG.fromFFIType hs_bindgen_3affee0f8870d4ec_base
+
+{-| __C declaration:__ @heif_image_handle_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 86:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_omaf_image_projection ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_handle_set_omaf_image_projection =
+  hs_bindgen_3affee0f8870d4ec
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_a29dc52a1e29118f" hs_bindgen_a29dc52a1e29118f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_omaf_image_projection@
+hs_bindgen_a29dc52a1e29118f ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_omaf_image_projection
+hs_bindgen_a29dc52a1e29118f =
+  BG.fromFFIType hs_bindgen_a29dc52a1e29118f_base
+
+{-| __C declaration:__ @heif_image_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 94:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_omaf_image_projection
+heif_image_get_omaf_image_projection =
+  hs_bindgen_a29dc52a1e29118f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_5ca071150556330e" hs_bindgen_5ca071150556330e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_omaf_image_projection@
+hs_bindgen_5ca071150556330e ::
+     BG.Ptr Heif_image
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_5ca071150556330e =
+  BG.fromFFIType hs_bindgen_5ca071150556330e_base
+
+{-| __C declaration:__ @heif_image_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 97:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_omaf_image_projection ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_set_omaf_image_projection =
+  hs_bindgen_5ca071150556330e
diff --git a/src-wasm/Codec/HEIF/Bindings/Generated.hs b/src-wasm/Codec/HEIF/Bindings/Generated.hs
new file mode 100644
--- /dev/null
+++ b/src-wasm/Codec/HEIF/Bindings/Generated.hs
@@ -0,0 +1,13913 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE EmptyDataDecls #-}
+{-# LANGUAGE ExplicitForAll #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE UnboxedTuples #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+module Codec.HEIF.Bindings.Generated
+    ( Codec.HEIF.Bindings.Generated.lIBHEIF_NUMERIC_VERSION
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_VERSION
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_PLUGIN_DIRECTORY
+    , Codec.HEIF.Bindings.Generated.Heif_error_code(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Ok
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Input_does_not_exist
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Invalid_input
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Unsupported_filetype
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Unsupported_feature
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Usage_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Memory_allocation_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Decoder_plugin_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Encoder_plugin_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Encoding_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Color_profile_does_not_exist
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Plugin_loading_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_Canceled
+    , pattern Codec.HEIF.Bindings.Generated.Heif_error_End_of_sequence
+    , Codec.HEIF.Bindings.Generated.Heif_suberror_code(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_End_of_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_box_size
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ftyp_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_idat_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_meta_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_hdlr_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_hvcC_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_pitm_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ipco_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ipma_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iloc_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iinf_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iprp_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_iref_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_pict_handler
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Ipma_box_references_nonexisting_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_properties_assigned_to_item
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_item_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_grid_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Missing_grid_images
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_clean_aperture
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_overlay_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Overlay_image_outside_of_canvas
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Auxiliary_image_type_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_or_invalid_primary_item
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_infe_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_color_profile_type
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Wrong_tile_image_chroma_format
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_fractional_number
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_image_size
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_pixi_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_av1C_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Wrong_tile_image_pixel_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_NCLX_color_primaries
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_NCLX_transfer_characteristics
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unknown_NCLX_matrix_coefficients
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_region_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_ispe_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Camera_intrinsic_matrix_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Camera_extrinsic_matrix_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_J2K_codestream
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_vvcC_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_icbr_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_avcC_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_mini_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Decompression_invalid_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_moov_box
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_NCLX_colr_VUI_mismatch
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Security_limit_exceeded
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Compression_initialisation_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Nonexisting_item_referenced
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Null_pointer_argument
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Nonexisting_image_channel_referenced
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_plugin_version
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_writer_version
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_parameter
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_parameter_value
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Invalid_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Item_reference_cycle
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_codec
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_image_type
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_data_version
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_color_conversion
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_item_construction_method
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_header_compression_method
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_generic_compression_method
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_essential_property
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_track_type
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Unsupported_bit_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Cannot_write_output_data
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Encoder_initialization
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Encoder_encoding
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Encoder_cleanup
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Too_many_regions
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Plugin_loading_error
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Plugin_is_not_loaded
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_Cannot_read_plugin_directory
+    , pattern Codec.HEIF.Bindings.Generated.Heif_suberror_No_matching_decoder_installed
+    , Codec.HEIF.Bindings.Generated.Heif_error(..)
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_MAKE_VERSION
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_HAVE_VERSION
+    , Codec.HEIF.Bindings.Generated.Heif_context
+    , Codec.HEIF.Bindings.Generated.Heif_image_handle
+    , Codec.HEIF.Bindings.Generated.Heif_item_id(..)
+    , Codec.HEIF.Bindings.Generated.Heif_property_id(..)
+    , Codec.HEIF.Bindings.Generated.Heif_init_params(..)
+    , Codec.HEIF.Bindings.Generated.Heif_plugin_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_plugin_type_encoder
+    , pattern Codec.HEIF.Bindings.Generated.Heif_plugin_type_decoder
+    , Codec.HEIF.Bindings.Generated.Heif_plugin_info(..)
+    , Codec.HEIF.Bindings.Generated.Heif_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.Heif_chroma(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_planar
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_420
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_422
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_444
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RGB
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RGBA
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBB_BE
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBBAA_BE
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBB_LE
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_interleaved_RRGGBBAA_LE
+    , Codec.HEIF.Bindings.Generated.Heif_colorspace(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_YCbCr
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_RGB
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_monochrome
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_custom
+    , pattern Codec.HEIF.Bindings.Generated.Heif_colorspace_filter_array
+    , Codec.HEIF.Bindings.Generated.Heif_channel(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Y
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Cb
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Cr
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_R
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_B
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_Alpha
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_interleaved
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_filter_array
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_disparity
+    , pattern Codec.HEIF.Bindings.Generated.Heif_channel_unknown
+    , Codec.HEIF.Bindings.Generated.Heif_image
+    , Codec.HEIF.Bindings.Generated.Heif_scaling_options
+    , Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_algorithm(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_nearest_neighbor
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_average
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_downsampling_sharp_yuv
+    , Codec.HEIF.Bindings.Generated.Heif_chroma_upsampling_algorithm(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_upsampling_nearest_neighbor
+    , pattern Codec.HEIF.Bindings.Generated.Heif_chroma_upsampling_bilinear
+    , Codec.HEIF.Bindings.Generated.Heif_color_conversion_options(..)
+    , Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode_none
+    , pattern Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode_solid_color
+    , pattern Codec.HEIF.Bindings.Generated.Heif_alpha_composition_mode_checkerboard
+    , Codec.HEIF.Bindings.Generated.Heif_color_conversion_options_ext(..)
+    , Codec.HEIF.Bindings.Generated.Heif_color_profile_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_not_present
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_nclx
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_rICC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_profile_type_prof
+    , Codec.HEIF.Bindings.Generated.Heif_color_primaries(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_709_5
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_470_6_System_M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_470_6_System_B_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_601_6
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_240M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_generic_film
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_ST_428_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_RP_431_2
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_SMPTE_EG_432_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_color_primaries_EBU_Tech_3213_E
+    , Codec.HEIF.Bindings.Generated.Heif_transfer_characteristics(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_709_5
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_470_6_System_M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_601_6
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_SMPTE_240M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_linear
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_logarithmic_100
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_logarithmic_100_sqrt10
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_IEC_61966_2_4
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_1361
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_IEC_61966_2_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_SMPTE_ST_428_1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG
+    , Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_RGB_GBR
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_709_5
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_unspecified
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_US_FCC_T47
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_601_6
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_SMPTE_240M
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_YCgCo
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_SMPTE_ST_2085
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_chromaticity_derived_constant_luminance
+    , pattern Codec.HEIF.Bindings.Generated.Heif_matrix_coefficients_ICtCp
+    , Codec.HEIF.Bindings.Generated.Heif_color_profile_nclx(..)
+    , Codec.HEIF.Bindings.Generated.Heif_content_light_level(..)
+    , Codec.HEIF.Bindings.Generated.Heif_mastering_display_colour_volume(..)
+    , Codec.HEIF.Bindings.Generated.Heif_decoded_mastering_display_colour_volume(..)
+    , Codec.HEIF.Bindings.Generated.Heif_ambient_viewing_environment(..)
+    , Codec.HEIF.Bindings.Generated.Heif_brand2(..)
+    , Codec.HEIF.Bindings.Generated.Heif_filetype_result(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_no
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_yes_supported
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_yes_unsupported
+    , pattern Codec.HEIF.Bindings.Generated.Heif_filetype_maybe
+    , Codec.HEIF.Bindings.Generated.Heif_brand(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_unknown_brand
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heic
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heix
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevc
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevx
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heim
+    , pattern Codec.HEIF.Bindings.Generated.Heif_heis
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevm
+    , pattern Codec.HEIF.Bindings.Generated.Heif_hevs
+    , pattern Codec.HEIF.Bindings.Generated.Heif_mif1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_msf1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_avif
+    , pattern Codec.HEIF.Bindings.Generated.Heif_avis
+    , pattern Codec.HEIF.Bindings.Generated.Heif_vvic
+    , pattern Codec.HEIF.Bindings.Generated.Heif_vvis
+    , pattern Codec.HEIF.Bindings.Generated.Heif_evbi
+    , pattern Codec.HEIF.Bindings.Generated.Heif_evbs
+    , pattern Codec.HEIF.Bindings.Generated.Heif_j2ki
+    , pattern Codec.HEIF.Bindings.Generated.Heif_j2is
+    , Codec.HEIF.Bindings.Generated.Heif_metadata_compression(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_off
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_auto
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_unknown
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_deflate
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_zlib
+    , pattern Codec.HEIF.Bindings.Generated.Heif_metadata_compression_brotli
+    , Codec.HEIF.Bindings.Generated.Heif_encoder
+    , Codec.HEIF.Bindings.Generated.Heif_depth_representation_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_uniform_inverse_Z
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_uniform_disparity
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_uniform_Z
+    , pattern Codec.HEIF.Bindings.Generated.Heif_depth_representation_type_nonuniform_disparity
+    , Codec.HEIF.Bindings.Generated.Heif_depth_representation_info(..)
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA
+    , Codec.HEIF.Bindings.Generated.lIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH
+    , Codec.HEIF.Bindings.Generated.Heif_entity_group_id(..)
+    , Codec.HEIF.Bindings.Generated.Heif_entity_group(..)
+    , Codec.HEIF.Bindings.Generated.Heif_security_limits(..)
+    , Codec.HEIF.Bindings.Generated.Heif_compression_format(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_undefined
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_HEVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_AVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_JPEG
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_AV1
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_VVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_EVC
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_JPEG2000
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_uncompressed
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_mask
+    , pattern Codec.HEIF.Bindings.Generated.Heif_compression_HTJ2K
+    , Codec.HEIF.Bindings.Generated.Heif_reading_options
+    , Codec.HEIF.Bindings.Generated.Heif_reader_grow_status(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_size_reached
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_timeout
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_size_beyond_eof
+    , pattern Codec.HEIF.Bindings.Generated.Heif_reader_grow_status_error
+    , Codec.HEIF.Bindings.Generated.Heif_reader_range_request_result(..)
+    , Codec.HEIF.Bindings.Generated.Heif_reader(..)
+    , Codec.HEIF.Bindings.Generated.Heif_writer(..)
+    , Codec.HEIF.Bindings.Generated.Heif_unci_image_parameters
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_descriptor
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_parameter
+    , Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type_integer
+    , pattern Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type_boolean
+    , pattern Codec.HEIF.Bindings.Generated.Heif_encoder_parameter_type_string
+    , Codec.HEIF.Bindings.Generated.Heif_orientation(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_normal
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_flip_horizontally
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_180
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_flip_vertically
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_90_cw_then_flip_horizontally
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_90_cw
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_90_cw_then_flip_vertically
+    , pattern Codec.HEIF.Bindings.Generated.Heif_orientation_rotate_270_cw
+    , Codec.HEIF.Bindings.Generated.Heif_encoding_options(..)
+    , Codec.HEIF.Bindings.Generated.Heif_progress_step(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_progress_step_total
+    , pattern Codec.HEIF.Bindings.Generated.Heif_progress_step_load_tile
+    , Codec.HEIF.Bindings.Generated.Heif_decoding_options(..)
+    , Codec.HEIF.Bindings.Generated.Heif_decoder_descriptor
+    , Codec.HEIF.Bindings.Generated.Heif_image_tiling(..)
+    , Codec.HEIF.Bindings.Generated.Heif_component_datatype(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_unsigned_integer
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_floating_point
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_complex_number
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_signed_integer
+    , pattern Codec.HEIF.Bindings.Generated.Heif_component_datatype_undefined
+    , Codec.HEIF.Bindings.Generated.Heif_complex32(..)
+    , Codec.HEIF.Bindings.Generated.Heif_complex64(..)
+    , Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_monochrome
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_Y
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_Cb
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_Cr
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_red
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_green
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_blue
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_alpha
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_depth
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_disparity
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_palette
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_filter_array
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_padded
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_cyan
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_magenta
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_yellow
+    , pattern Codec.HEIF.Bindings.Generated.Heif_cmpd_component_type_key_black
+    , Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection(..)
+    , pattern Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection_equirectangular
+    , pattern Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection_cube_map
+    , pattern Codec.HEIF.Bindings.Generated.Heif_omaf_image_projection_flat
+    )
+  where
+
+import qualified C.Expr.HostPlatform
+import qualified HsBindgen.Runtime.CEnum as CEnum
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.HasCField as HasCField
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.Marshal as Marshal
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Struct as Struct
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CompatHasField as BG.CompatHasField
+
+{-| __C declaration:__ @macro LIBHEIF_NUMERIC_VERSION@
+
+    __defined at:__ @libheif\/heif_version.h 31:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_NUMERIC_VERSION :: BG.CInt
+lIBHEIF_NUMERIC_VERSION =
+  (C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform.<<) (1 :: BG.CInt) (24 :: BG.CInt)) ((C.Expr.HostPlatform.<<) (23 :: BG.CInt) (16 :: BG.CInt))) ((C.Expr.HostPlatform.<<) (1 :: BG.CInt) (8 :: BG.CInt))) (0 :: BG.CInt)
+
+{-| __C declaration:__ @macro LIBHEIF_VERSION@
+
+    __C literal:__ @\"1.23.1\"@
+
+    __defined at:__ @libheif\/heif_version.h 34:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_VERSION :: BG.ByteString
+lIBHEIF_VERSION =
+  BG.pack [0x31, 0x2E, 0x32, 0x33, 0x2E, 0x31]
+
+{-| __C declaration:__ @macro LIBHEIF_PLUGIN_DIRECTORY@
+
+    __C literal:__ @\"\/nix\/store\/lzfdkp5xyk3db503ap1hvanm3as2l1r4-libheif-wasi-1.23.1\/lib\/libheif\"@
+
+    __defined at:__ @libheif\/heif_version.h 36:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_PLUGIN_DIRECTORY :: BG.ByteString
+lIBHEIF_PLUGIN_DIRECTORY =
+  BG.pack [0x2F, 0x6E, 0x69, 0x78, 0x2F, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x2F, 0x6C, 0x7A, 0x66, 0x64, 0x6B, 0x70, 0x35, 0x78, 0x79, 0x6B, 0x33, 0x64, 0x62, 0x35, 0x30, 0x33, 0x61, 0x70, 0x31, 0x68, 0x76, 0x61, 0x6E, 0x6D, 0x33, 0x61, 0x73, 0x32, 0x6C, 0x31, 0x72, 0x34, 0x2D, 0x6C, 0x69, 0x62, 0x68, 0x65, 0x69, 0x66, 0x2D, 0x77, 0x61, 0x73, 0x69, 0x2D, 0x31, 0x2E, 0x32, 0x33, 0x2E, 0x31, 0x2F, 0x6C, 0x69, 0x62, 0x2F, 0x6C, 0x69, 0x62, 0x68, 0x65, 0x69, 0x66]
+
+{-| __C declaration:__ @enum heif_error_code@
+
+    __defined at:__ @libheif\/heif_error.h 34:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_error_code = Heif_error_code
+  { unwrapHeif_error_code :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_error_code where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_error_code where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_error_code
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_error_code where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_error_code unwrapHeif_error_code2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_error_code2
+
+deriving via Marshal.EquivStorable Heif_error_code instance BG.Storable Heif_error_code
+
+deriving via BG.CUInt instance BG.Prim Heif_error_code
+
+instance CEnum.CEnum Heif_error_code where
+
+  type CEnumZ Heif_error_code = BG.CUInt
+
+  toCEnum = Heif_error_code
+
+  fromCEnum = BG.getField @"unwrapHeif_error_code"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_error_Ok")
+                                   , (1, BG.singleton "Heif_error_Input_does_not_exist")
+                                   , (2, BG.singleton "Heif_error_Invalid_input")
+                                   , (3, BG.singleton "Heif_error_Unsupported_filetype")
+                                   , (4, BG.singleton "Heif_error_Unsupported_feature")
+                                   , (5, BG.singleton "Heif_error_Usage_error")
+                                   , (6, BG.singleton "Heif_error_Memory_allocation_error")
+                                   , (7, BG.singleton "Heif_error_Decoder_plugin_error")
+                                   , (8, BG.singleton "Heif_error_Encoder_plugin_error")
+                                   , (9, BG.singleton "Heif_error_Encoding_error")
+                                   , (10, BG.singleton "Heif_error_Color_profile_does_not_exist")
+                                   , (11, BG.singleton "Heif_error_Plugin_loading_error")
+                                   , (12, BG.singleton "Heif_error_Canceled")
+                                   , (13, BG.singleton "Heif_error_End_of_sequence")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_error_code"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_error_code"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_error_code where
+
+  minDeclaredValue = Heif_error_Ok
+
+  maxDeclaredValue = Heif_error_End_of_sequence
+
+instance Show Heif_error_code where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_error_code where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_error_code" Heif_error_code ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_error_code {unwrapHeif_error_code = y1}
+      , BG.getField @"unwrapHeif_error_code" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_error_code" (BG.Ptr Heif_error_code) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_error_code")
+
+instance HasCField.HasCField Heif_error_code "unwrapHeif_error_code" where
+
+  type CFieldType Heif_error_code "unwrapHeif_error_code" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_error_Ok@
+
+    __defined at:__ @libheif\/heif_error.h 37:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Ok :: Heif_error_code
+pattern Heif_error_Ok = Heif_error_code 0
+
+{-| __C declaration:__ @heif_error_Input_does_not_exist@
+
+    __defined at:__ @libheif\/heif_error.h 40:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Input_does_not_exist :: Heif_error_code
+pattern Heif_error_Input_does_not_exist = Heif_error_code 1
+
+{-| __C declaration:__ @heif_error_Invalid_input@
+
+    __defined at:__ @libheif\/heif_error.h 43:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Invalid_input :: Heif_error_code
+pattern Heif_error_Invalid_input = Heif_error_code 2
+
+{-| __C declaration:__ @heif_error_Unsupported_filetype@
+
+    __defined at:__ @libheif\/heif_error.h 46:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Unsupported_filetype :: Heif_error_code
+pattern Heif_error_Unsupported_filetype = Heif_error_code 3
+
+{-| __C declaration:__ @heif_error_Unsupported_feature@
+
+    __defined at:__ @libheif\/heif_error.h 49:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Unsupported_feature :: Heif_error_code
+pattern Heif_error_Unsupported_feature = Heif_error_code 4
+
+{-| __C declaration:__ @heif_error_Usage_error@
+
+    __defined at:__ @libheif\/heif_error.h 52:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Usage_error :: Heif_error_code
+pattern Heif_error_Usage_error = Heif_error_code 5
+
+{-| __C declaration:__ @heif_error_Memory_allocation_error@
+
+    __defined at:__ @libheif\/heif_error.h 55:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Memory_allocation_error :: Heif_error_code
+pattern Heif_error_Memory_allocation_error = Heif_error_code 6
+
+{-| __C declaration:__ @heif_error_Decoder_plugin_error@
+
+    __defined at:__ @libheif\/heif_error.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Decoder_plugin_error :: Heif_error_code
+pattern Heif_error_Decoder_plugin_error = Heif_error_code 7
+
+{-| __C declaration:__ @heif_error_Encoder_plugin_error@
+
+    __defined at:__ @libheif\/heif_error.h 61:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Encoder_plugin_error :: Heif_error_code
+pattern Heif_error_Encoder_plugin_error = Heif_error_code 8
+
+{-| __C declaration:__ @heif_error_Encoding_error@
+
+    __defined at:__ @libheif\/heif_error.h 64:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Encoding_error :: Heif_error_code
+pattern Heif_error_Encoding_error = Heif_error_code 9
+
+{-| __C declaration:__ @heif_error_Color_profile_does_not_exist@
+
+    __defined at:__ @libheif\/heif_error.h 67:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Color_profile_does_not_exist :: Heif_error_code
+pattern Heif_error_Color_profile_does_not_exist = Heif_error_code 10
+
+{-| __C declaration:__ @heif_error_Plugin_loading_error@
+
+    __defined at:__ @libheif\/heif_error.h 70:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Plugin_loading_error :: Heif_error_code
+pattern Heif_error_Plugin_loading_error = Heif_error_code 11
+
+{-| __C declaration:__ @heif_error_Canceled@
+
+    __defined at:__ @libheif\/heif_error.h 73:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_Canceled :: Heif_error_code
+pattern Heif_error_Canceled = Heif_error_code 12
+
+{-| __C declaration:__ @heif_error_End_of_sequence@
+
+    __defined at:__ @libheif\/heif_error.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_error_End_of_sequence :: Heif_error_code
+pattern Heif_error_End_of_sequence = Heif_error_code 13
+
+{-# COMPLETE
+      Heif_error_Ok
+    , Heif_error_Input_does_not_exist
+    , Heif_error_Invalid_input
+    , Heif_error_Unsupported_filetype
+    , Heif_error_Unsupported_feature
+    , Heif_error_Usage_error
+    , Heif_error_Memory_allocation_error
+    , Heif_error_Decoder_plugin_error
+    , Heif_error_Encoder_plugin_error
+    , Heif_error_Encoding_error
+    , Heif_error_Color_profile_does_not_exist
+    , Heif_error_Plugin_loading_error
+    , Heif_error_Canceled
+    , Heif_error_End_of_sequence
+  #-}
+
+{-| __C declaration:__ @enum heif_suberror_code@
+
+    __defined at:__ @libheif\/heif_error.h 79:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_suberror_code = Heif_suberror_code
+  { unwrapHeif_suberror_code :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_suberror_code where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_suberror_code where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_suberror_code
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_suberror_code where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_suberror_code unwrapHeif_suberror_code2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_suberror_code2
+
+deriving via Marshal.EquivStorable Heif_suberror_code instance BG.Storable Heif_suberror_code
+
+deriving via BG.CUInt instance BG.Prim Heif_suberror_code
+
+instance CEnum.CEnum Heif_suberror_code where
+
+  type CEnumZ Heif_suberror_code = BG.CUInt
+
+  toCEnum = Heif_suberror_code
+
+  fromCEnum = BG.getField @"unwrapHeif_suberror_code"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_suberror_Unspecified")
+                                   , (100, BG.singleton "Heif_suberror_End_of_data")
+                                   , (101, BG.singleton "Heif_suberror_Invalid_box_size")
+                                   , (102, BG.singleton "Heif_suberror_No_ftyp_box")
+                                   , (103, BG.singleton "Heif_suberror_No_idat_box")
+                                   , (104, BG.singleton "Heif_suberror_No_meta_box")
+                                   , (105, BG.singleton "Heif_suberror_No_hdlr_box")
+                                   , (106, BG.singleton "Heif_suberror_No_hvcC_box")
+                                   , (107, BG.singleton "Heif_suberror_No_pitm_box")
+                                   , (108, BG.singleton "Heif_suberror_No_ipco_box")
+                                   , (109, BG.singleton "Heif_suberror_No_ipma_box")
+                                   , (110, BG.singleton "Heif_suberror_No_iloc_box")
+                                   , (111, BG.singleton "Heif_suberror_No_iinf_box")
+                                   , (112, BG.singleton "Heif_suberror_No_iprp_box")
+                                   , (113, BG.singleton "Heif_suberror_No_iref_box")
+                                   , (114, BG.singleton "Heif_suberror_No_pict_handler")
+                                   , (115, BG.singleton "Heif_suberror_Ipma_box_references_nonexisting_property")
+                                   , (116, BG.singleton "Heif_suberror_No_properties_assigned_to_item")
+                                   , (117, BG.singleton "Heif_suberror_No_item_data")
+                                   , (118, BG.singleton "Heif_suberror_Invalid_grid_data")
+                                   , (119, BG.singleton "Heif_suberror_Missing_grid_images")
+                                   , (120, BG.singleton "Heif_suberror_Invalid_clean_aperture")
+                                   , (121, BG.singleton "Heif_suberror_Invalid_overlay_data")
+                                   , (122, BG.singleton "Heif_suberror_Overlay_image_outside_of_canvas")
+                                   , (123, BG.singleton "Heif_suberror_Auxiliary_image_type_unspecified")
+                                   , (124, BG.singleton "Heif_suberror_No_or_invalid_primary_item")
+                                   , (125, BG.singleton "Heif_suberror_No_infe_box")
+                                   , (126, BG.singleton "Heif_suberror_Unknown_color_profile_type")
+                                   , (127, BG.singleton "Heif_suberror_Wrong_tile_image_chroma_format")
+                                   , (128, BG.singleton "Heif_suberror_Invalid_fractional_number")
+                                   , (129, BG.singleton "Heif_suberror_Invalid_image_size")
+                                   , (130, BG.singleton "Heif_suberror_Invalid_pixi_box")
+                                   , (131, BG.singleton "Heif_suberror_No_av1C_box")
+                                   , (132, BG.singleton "Heif_suberror_Wrong_tile_image_pixel_depth")
+                                   , (133, BG.singleton "Heif_suberror_Unknown_NCLX_color_primaries")
+                                   , (134, BG.singleton "Heif_suberror_Unknown_NCLX_transfer_characteristics")
+                                   , (135, BG.singleton "Heif_suberror_Unknown_NCLX_matrix_coefficients")
+                                   , (136, BG.singleton "Heif_suberror_Invalid_region_data")
+                                   , (137, BG.singleton "Heif_suberror_No_ispe_property")
+                                   , (138, BG.singleton "Heif_suberror_Camera_intrinsic_matrix_undefined")
+                                   , (139, BG.singleton "Heif_suberror_Camera_extrinsic_matrix_undefined")
+                                   , (140, BG.singleton "Heif_suberror_Invalid_J2K_codestream")
+                                   , (141, BG.singleton "Heif_suberror_No_vvcC_box")
+                                   , (142, BG.singleton "Heif_suberror_No_icbr_box")
+                                   , (143, BG.singleton "Heif_suberror_No_avcC_box")
+                                   , (149, BG.singleton "Heif_suberror_Invalid_mini_box")
+                                   , (150, BG.singleton "Heif_suberror_Decompression_invalid_data")
+                                   , (151, BG.singleton "Heif_suberror_No_moov_box")
+                                   , (152, BG.singleton "Heif_suberror_NCLX_colr_VUI_mismatch")
+                                   , (1000, BG.singleton "Heif_suberror_Security_limit_exceeded")
+                                   , (1001, BG.singleton "Heif_suberror_Compression_initialisation_error")
+                                   , (2000, BG.singleton "Heif_suberror_Nonexisting_item_referenced")
+                                   , (2001, BG.singleton "Heif_suberror_Null_pointer_argument")
+                                   , (2002, BG.singleton "Heif_suberror_Nonexisting_image_channel_referenced")
+                                   , (2003, BG.singleton "Heif_suberror_Unsupported_plugin_version")
+                                   , (2004, BG.singleton "Heif_suberror_Unsupported_writer_version")
+                                   , (2005, BG.singleton "Heif_suberror_Unsupported_parameter")
+                                   , (2006, BG.singleton "Heif_suberror_Invalid_parameter_value")
+                                   , (2007, BG.singleton "Heif_suberror_Invalid_property")
+                                   , (2008, BG.singleton "Heif_suberror_Item_reference_cycle")
+                                   , (3000, BG.singleton "Heif_suberror_Unsupported_codec")
+                                   , (3001, BG.singleton "Heif_suberror_Unsupported_image_type")
+                                   , (3002, BG.singleton "Heif_suberror_Unsupported_data_version")
+                                   , (3003, BG.singleton "Heif_suberror_Unsupported_color_conversion")
+                                   , (3004, BG.singleton "Heif_suberror_Unsupported_item_construction_method")
+                                   , (3005, BG.singleton "Heif_suberror_Unsupported_header_compression_method")
+                                   , (3006, BG.singleton "Heif_suberror_Unsupported_generic_compression_method")
+                                   , (3007, BG.singleton "Heif_suberror_Unsupported_essential_property")
+                                   , (3008, BG.singleton "Heif_suberror_Unsupported_track_type")
+                                   , (4000, BG.singleton "Heif_suberror_Unsupported_bit_depth")
+                                   , (5000, BG.singleton "Heif_suberror_Cannot_write_output_data")
+                                   , (5001, BG.singleton "Heif_suberror_Encoder_initialization")
+                                   , (5002, BG.singleton "Heif_suberror_Encoder_encoding")
+                                   , (5003, BG.singleton "Heif_suberror_Encoder_cleanup")
+                                   , (5004, BG.singleton "Heif_suberror_Too_many_regions")
+                                   , (6000, BG.singleton "Heif_suberror_Plugin_loading_error")
+                                   , (6001, BG.singleton "Heif_suberror_Plugin_is_not_loaded")
+                                   , (6002, BG.singleton "Heif_suberror_Cannot_read_plugin_directory")
+                                   , (6003, BG.singleton "Heif_suberror_No_matching_decoder_installed")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_suberror_code"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_suberror_code"
+
+instance Show Heif_suberror_code where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_suberror_code where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_suberror_code" Heif_suberror_code ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_suberror_code {unwrapHeif_suberror_code = y1}
+      , BG.getField @"unwrapHeif_suberror_code" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_suberror_code" (BG.Ptr Heif_suberror_code) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_suberror_code")
+
+instance HasCField.HasCField Heif_suberror_code "unwrapHeif_suberror_code" where
+
+  type CFieldType Heif_suberror_code "unwrapHeif_suberror_code" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_suberror_Unspecified@
+
+    __defined at:__ @libheif\/heif_error.h 82:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unspecified :: Heif_suberror_code
+pattern Heif_suberror_Unspecified = Heif_suberror_code 0
+
+{-| __C declaration:__ @heif_suberror_End_of_data@
+
+    __defined at:__ @libheif\/heif_error.h 87:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_End_of_data :: Heif_suberror_code
+pattern Heif_suberror_End_of_data = Heif_suberror_code 100
+
+{-| __C declaration:__ @heif_suberror_Invalid_box_size@
+
+    __defined at:__ @libheif\/heif_error.h 90:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_box_size :: Heif_suberror_code
+pattern Heif_suberror_Invalid_box_size = Heif_suberror_code 101
+
+{-| __C declaration:__ @heif_suberror_No_ftyp_box@
+
+    __defined at:__ @libheif\/heif_error.h 93:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ftyp_box :: Heif_suberror_code
+pattern Heif_suberror_No_ftyp_box = Heif_suberror_code 102
+
+{-| __C declaration:__ @heif_suberror_No_idat_box@
+
+    __defined at:__ @libheif\/heif_error.h 95:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_idat_box :: Heif_suberror_code
+pattern Heif_suberror_No_idat_box = Heif_suberror_code 103
+
+{-| __C declaration:__ @heif_suberror_No_meta_box@
+
+    __defined at:__ @libheif\/heif_error.h 97:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_meta_box :: Heif_suberror_code
+pattern Heif_suberror_No_meta_box = Heif_suberror_code 104
+
+{-| __C declaration:__ @heif_suberror_No_hdlr_box@
+
+    __defined at:__ @libheif\/heif_error.h 99:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_hdlr_box :: Heif_suberror_code
+pattern Heif_suberror_No_hdlr_box = Heif_suberror_code 105
+
+{-| __C declaration:__ @heif_suberror_No_hvcC_box@
+
+    __defined at:__ @libheif\/heif_error.h 101:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_hvcC_box :: Heif_suberror_code
+pattern Heif_suberror_No_hvcC_box = Heif_suberror_code 106
+
+{-| __C declaration:__ @heif_suberror_No_pitm_box@
+
+    __defined at:__ @libheif\/heif_error.h 103:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_pitm_box :: Heif_suberror_code
+pattern Heif_suberror_No_pitm_box = Heif_suberror_code 107
+
+{-| __C declaration:__ @heif_suberror_No_ipco_box@
+
+    __defined at:__ @libheif\/heif_error.h 105:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ipco_box :: Heif_suberror_code
+pattern Heif_suberror_No_ipco_box = Heif_suberror_code 108
+
+{-| __C declaration:__ @heif_suberror_No_ipma_box@
+
+    __defined at:__ @libheif\/heif_error.h 107:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ipma_box :: Heif_suberror_code
+pattern Heif_suberror_No_ipma_box = Heif_suberror_code 109
+
+{-| __C declaration:__ @heif_suberror_No_iloc_box@
+
+    __defined at:__ @libheif\/heif_error.h 109:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iloc_box :: Heif_suberror_code
+pattern Heif_suberror_No_iloc_box = Heif_suberror_code 110
+
+{-| __C declaration:__ @heif_suberror_No_iinf_box@
+
+    __defined at:__ @libheif\/heif_error.h 111:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iinf_box :: Heif_suberror_code
+pattern Heif_suberror_No_iinf_box = Heif_suberror_code 111
+
+{-| __C declaration:__ @heif_suberror_No_iprp_box@
+
+    __defined at:__ @libheif\/heif_error.h 113:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iprp_box :: Heif_suberror_code
+pattern Heif_suberror_No_iprp_box = Heif_suberror_code 112
+
+{-| __C declaration:__ @heif_suberror_No_iref_box@
+
+    __defined at:__ @libheif\/heif_error.h 115:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_iref_box :: Heif_suberror_code
+pattern Heif_suberror_No_iref_box = Heif_suberror_code 113
+
+{-| __C declaration:__ @heif_suberror_No_pict_handler@
+
+    __defined at:__ @libheif\/heif_error.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_pict_handler :: Heif_suberror_code
+pattern Heif_suberror_No_pict_handler = Heif_suberror_code 114
+
+{-| __C declaration:__ @heif_suberror_Ipma_box_references_nonexisting_property@
+
+    __defined at:__ @libheif\/heif_error.h 120:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Ipma_box_references_nonexisting_property :: Heif_suberror_code
+pattern Heif_suberror_Ipma_box_references_nonexisting_property = Heif_suberror_code 115
+
+{-| __C declaration:__ @heif_suberror_No_properties_assigned_to_item@
+
+    __defined at:__ @libheif\/heif_error.h 123:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_properties_assigned_to_item :: Heif_suberror_code
+pattern Heif_suberror_No_properties_assigned_to_item = Heif_suberror_code 116
+
+{-| __C declaration:__ @heif_suberror_No_item_data@
+
+    __defined at:__ @libheif\/heif_error.h 126:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_item_data :: Heif_suberror_code
+pattern Heif_suberror_No_item_data = Heif_suberror_code 117
+
+{-| __C declaration:__ @heif_suberror_Invalid_grid_data@
+
+    __defined at:__ @libheif\/heif_error.h 129:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_grid_data :: Heif_suberror_code
+pattern Heif_suberror_Invalid_grid_data = Heif_suberror_code 118
+
+{-| __C declaration:__ @heif_suberror_Missing_grid_images@
+
+    __defined at:__ @libheif\/heif_error.h 132:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Missing_grid_images :: Heif_suberror_code
+pattern Heif_suberror_Missing_grid_images = Heif_suberror_code 119
+
+{-| __C declaration:__ @heif_suberror_Invalid_clean_aperture@
+
+    __defined at:__ @libheif\/heif_error.h 134:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_clean_aperture :: Heif_suberror_code
+pattern Heif_suberror_Invalid_clean_aperture = Heif_suberror_code 120
+
+{-| __C declaration:__ @heif_suberror_Invalid_overlay_data@
+
+    __defined at:__ @libheif\/heif_error.h 137:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_overlay_data :: Heif_suberror_code
+pattern Heif_suberror_Invalid_overlay_data = Heif_suberror_code 121
+
+{-| __C declaration:__ @heif_suberror_Overlay_image_outside_of_canvas@
+
+    __defined at:__ @libheif\/heif_error.h 140:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Overlay_image_outside_of_canvas :: Heif_suberror_code
+pattern Heif_suberror_Overlay_image_outside_of_canvas = Heif_suberror_code 122
+
+{-| __C declaration:__ @heif_suberror_Auxiliary_image_type_unspecified@
+
+    __defined at:__ @libheif\/heif_error.h 142:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Auxiliary_image_type_unspecified :: Heif_suberror_code
+pattern Heif_suberror_Auxiliary_image_type_unspecified = Heif_suberror_code 123
+
+{-| __C declaration:__ @heif_suberror_No_or_invalid_primary_item@
+
+    __defined at:__ @libheif\/heif_error.h 144:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_or_invalid_primary_item :: Heif_suberror_code
+pattern Heif_suberror_No_or_invalid_primary_item = Heif_suberror_code 124
+
+{-| __C declaration:__ @heif_suberror_No_infe_box@
+
+    __defined at:__ @libheif\/heif_error.h 146:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_infe_box :: Heif_suberror_code
+pattern Heif_suberror_No_infe_box = Heif_suberror_code 125
+
+{-| __C declaration:__ @heif_suberror_Unknown_color_profile_type@
+
+    __defined at:__ @libheif\/heif_error.h 148:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_color_profile_type :: Heif_suberror_code
+pattern Heif_suberror_Unknown_color_profile_type = Heif_suberror_code 126
+
+{-| __C declaration:__ @heif_suberror_Wrong_tile_image_chroma_format@
+
+    __defined at:__ @libheif\/heif_error.h 150:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Wrong_tile_image_chroma_format :: Heif_suberror_code
+pattern Heif_suberror_Wrong_tile_image_chroma_format = Heif_suberror_code 127
+
+{-| __C declaration:__ @heif_suberror_Invalid_fractional_number@
+
+    __defined at:__ @libheif\/heif_error.h 152:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_fractional_number :: Heif_suberror_code
+pattern Heif_suberror_Invalid_fractional_number = Heif_suberror_code 128
+
+{-| __C declaration:__ @heif_suberror_Invalid_image_size@
+
+    __defined at:__ @libheif\/heif_error.h 154:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_image_size :: Heif_suberror_code
+pattern Heif_suberror_Invalid_image_size = Heif_suberror_code 129
+
+{-| __C declaration:__ @heif_suberror_Invalid_pixi_box@
+
+    __defined at:__ @libheif\/heif_error.h 156:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_pixi_box :: Heif_suberror_code
+pattern Heif_suberror_Invalid_pixi_box = Heif_suberror_code 130
+
+{-| __C declaration:__ @heif_suberror_No_av1C_box@
+
+    __defined at:__ @libheif\/heif_error.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_av1C_box :: Heif_suberror_code
+pattern Heif_suberror_No_av1C_box = Heif_suberror_code 131
+
+{-| __C declaration:__ @heif_suberror_Wrong_tile_image_pixel_depth@
+
+    __defined at:__ @libheif\/heif_error.h 160:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Wrong_tile_image_pixel_depth :: Heif_suberror_code
+pattern Heif_suberror_Wrong_tile_image_pixel_depth = Heif_suberror_code 132
+
+{-| __C declaration:__ @heif_suberror_Unknown_NCLX_color_primaries@
+
+    __defined at:__ @libheif\/heif_error.h 162:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_NCLX_color_primaries :: Heif_suberror_code
+pattern Heif_suberror_Unknown_NCLX_color_primaries = Heif_suberror_code 133
+
+{-| __C declaration:__ @heif_suberror_Unknown_NCLX_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_error.h 164:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_NCLX_transfer_characteristics :: Heif_suberror_code
+pattern Heif_suberror_Unknown_NCLX_transfer_characteristics = Heif_suberror_code 134
+
+{-| __C declaration:__ @heif_suberror_Unknown_NCLX_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_error.h 166:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unknown_NCLX_matrix_coefficients :: Heif_suberror_code
+pattern Heif_suberror_Unknown_NCLX_matrix_coefficients = Heif_suberror_code 135
+
+{-| __C declaration:__ @heif_suberror_Invalid_region_data@
+
+    __defined at:__ @libheif\/heif_error.h 169:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_region_data :: Heif_suberror_code
+pattern Heif_suberror_Invalid_region_data = Heif_suberror_code 136
+
+{-| __C declaration:__ @heif_suberror_No_ispe_property@
+
+    __defined at:__ @libheif\/heif_error.h 172:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_ispe_property :: Heif_suberror_code
+pattern Heif_suberror_No_ispe_property = Heif_suberror_code 137
+
+{-| __C declaration:__ @heif_suberror_Camera_intrinsic_matrix_undefined@
+
+    __defined at:__ @libheif\/heif_error.h 174:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Camera_intrinsic_matrix_undefined :: Heif_suberror_code
+pattern Heif_suberror_Camera_intrinsic_matrix_undefined = Heif_suberror_code 138
+
+{-| __C declaration:__ @heif_suberror_Camera_extrinsic_matrix_undefined@
+
+    __defined at:__ @libheif\/heif_error.h 176:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Camera_extrinsic_matrix_undefined :: Heif_suberror_code
+pattern Heif_suberror_Camera_extrinsic_matrix_undefined = Heif_suberror_code 139
+
+{-| __C declaration:__ @heif_suberror_Invalid_J2K_codestream@
+
+    __defined at:__ @libheif\/heif_error.h 179:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_J2K_codestream :: Heif_suberror_code
+pattern Heif_suberror_Invalid_J2K_codestream = Heif_suberror_code 140
+
+{-| __C declaration:__ @heif_suberror_No_vvcC_box@
+
+    __defined at:__ @libheif\/heif_error.h 181:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_vvcC_box :: Heif_suberror_code
+pattern Heif_suberror_No_vvcC_box = Heif_suberror_code 141
+
+{-| __C declaration:__ @heif_suberror_No_icbr_box@
+
+    __defined at:__ @libheif\/heif_error.h 184:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_icbr_box :: Heif_suberror_code
+pattern Heif_suberror_No_icbr_box = Heif_suberror_code 142
+
+{-| __C declaration:__ @heif_suberror_No_avcC_box@
+
+    __defined at:__ @libheif\/heif_error.h 186:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_avcC_box :: Heif_suberror_code
+pattern Heif_suberror_No_avcC_box = Heif_suberror_code 143
+
+{-| __C declaration:__ @heif_suberror_Invalid_mini_box@
+
+    __defined at:__ @libheif\/heif_error.h 189:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_mini_box :: Heif_suberror_code
+pattern Heif_suberror_Invalid_mini_box = Heif_suberror_code 149
+
+{-| __C declaration:__ @heif_suberror_Decompression_invalid_data@
+
+    __defined at:__ @libheif\/heif_error.h 192:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Decompression_invalid_data :: Heif_suberror_code
+pattern Heif_suberror_Decompression_invalid_data = Heif_suberror_code 150
+
+{-| __C declaration:__ @heif_suberror_No_moov_box@
+
+    __defined at:__ @libheif\/heif_error.h 194:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_moov_box :: Heif_suberror_code
+pattern Heif_suberror_No_moov_box = Heif_suberror_code 151
+
+{-| __C declaration:__ @heif_suberror_NCLX_colr_VUI_mismatch@
+
+    __defined at:__ @libheif\/heif_error.h 199:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_NCLX_colr_VUI_mismatch :: Heif_suberror_code
+pattern Heif_suberror_NCLX_colr_VUI_mismatch = Heif_suberror_code 152
+
+{-| __C declaration:__ @heif_suberror_Security_limit_exceeded@
+
+    __defined at:__ @libheif\/heif_error.h 206:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Security_limit_exceeded :: Heif_suberror_code
+pattern Heif_suberror_Security_limit_exceeded = Heif_suberror_code 1000
+
+{-| __C declaration:__ @heif_suberror_Compression_initialisation_error@
+
+    __defined at:__ @libheif\/heif_error.h 210:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Compression_initialisation_error :: Heif_suberror_code
+pattern Heif_suberror_Compression_initialisation_error = Heif_suberror_code 1001
+
+{-| __C declaration:__ @heif_suberror_Nonexisting_item_referenced@
+
+    __defined at:__ @libheif\/heif_error.h 215:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Nonexisting_item_referenced :: Heif_suberror_code
+pattern Heif_suberror_Nonexisting_item_referenced = Heif_suberror_code 2000
+
+{-| __C declaration:__ @heif_suberror_Null_pointer_argument@
+
+    __defined at:__ @libheif\/heif_error.h 218:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Null_pointer_argument :: Heif_suberror_code
+pattern Heif_suberror_Null_pointer_argument = Heif_suberror_code 2001
+
+{-| __C declaration:__ @heif_suberror_Nonexisting_image_channel_referenced@
+
+    __defined at:__ @libheif\/heif_error.h 221:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Nonexisting_image_channel_referenced :: Heif_suberror_code
+pattern Heif_suberror_Nonexisting_image_channel_referenced = Heif_suberror_code 2002
+
+{-| __C declaration:__ @heif_suberror_Unsupported_plugin_version@
+
+    __defined at:__ @libheif\/heif_error.h 224:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_plugin_version :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_plugin_version = Heif_suberror_code 2003
+
+{-| __C declaration:__ @heif_suberror_Unsupported_writer_version@
+
+    __defined at:__ @libheif\/heif_error.h 227:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_writer_version :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_writer_version = Heif_suberror_code 2004
+
+{-| __C declaration:__ @heif_suberror_Unsupported_parameter@
+
+    __defined at:__ @libheif\/heif_error.h 230:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_parameter :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_parameter = Heif_suberror_code 2005
+
+{-| __C declaration:__ @heif_suberror_Invalid_parameter_value@
+
+    __defined at:__ @libheif\/heif_error.h 233:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_parameter_value :: Heif_suberror_code
+pattern Heif_suberror_Invalid_parameter_value = Heif_suberror_code 2006
+
+{-| __C declaration:__ @heif_suberror_Invalid_property@
+
+    __defined at:__ @libheif\/heif_error.h 236:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Invalid_property :: Heif_suberror_code
+pattern Heif_suberror_Invalid_property = Heif_suberror_code 2007
+
+{-| __C declaration:__ @heif_suberror_Item_reference_cycle@
+
+    __defined at:__ @libheif\/heif_error.h 239:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Item_reference_cycle :: Heif_suberror_code
+pattern Heif_suberror_Item_reference_cycle = Heif_suberror_code 2008
+
+{-| __C declaration:__ @heif_suberror_Unsupported_codec@
+
+    __defined at:__ @libheif\/heif_error.h 245:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_codec :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_codec = Heif_suberror_code 3000
+
+{-| __C declaration:__ @heif_suberror_Unsupported_image_type@
+
+    __defined at:__ @libheif\/heif_error.h 248:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_image_type :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_image_type = Heif_suberror_code 3001
+
+{-| __C declaration:__ @heif_suberror_Unsupported_data_version@
+
+    __defined at:__ @libheif\/heif_error.h 250:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_data_version :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_data_version = Heif_suberror_code 3002
+
+{-| __C declaration:__ @heif_suberror_Unsupported_color_conversion@
+
+    __defined at:__ @libheif\/heif_error.h 253:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_color_conversion :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_color_conversion = Heif_suberror_code 3003
+
+{-| __C declaration:__ @heif_suberror_Unsupported_item_construction_method@
+
+    __defined at:__ @libheif\/heif_error.h 255:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_item_construction_method :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_item_construction_method = Heif_suberror_code 3004
+
+{-| __C declaration:__ @heif_suberror_Unsupported_header_compression_method@
+
+    __defined at:__ @libheif\/heif_error.h 257:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_header_compression_method :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_header_compression_method = Heif_suberror_code 3005
+
+{-| __C declaration:__ @heif_suberror_Unsupported_generic_compression_method@
+
+    __defined at:__ @libheif\/heif_error.h 260:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_generic_compression_method :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_generic_compression_method = Heif_suberror_code 3006
+
+{-| __C declaration:__ @heif_suberror_Unsupported_essential_property@
+
+    __defined at:__ @libheif\/heif_error.h 262:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_essential_property :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_essential_property = Heif_suberror_code 3007
+
+{-| __C declaration:__ @heif_suberror_Unsupported_track_type@
+
+    __defined at:__ @libheif\/heif_error.h 264:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_track_type :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_track_type = Heif_suberror_code 3008
+
+{-| __C declaration:__ @heif_suberror_Unsupported_bit_depth@
+
+    __defined at:__ @libheif\/heif_error.h 268:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Unsupported_bit_depth :: Heif_suberror_code
+pattern Heif_suberror_Unsupported_bit_depth = Heif_suberror_code 4000
+
+{-| __C declaration:__ @heif_suberror_Cannot_write_output_data@
+
+    __defined at:__ @libheif\/heif_error.h 273:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Cannot_write_output_data :: Heif_suberror_code
+pattern Heif_suberror_Cannot_write_output_data = Heif_suberror_code 5000
+
+{-| __C declaration:__ @heif_suberror_Encoder_initialization@
+
+    __defined at:__ @libheif\/heif_error.h 275:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Encoder_initialization :: Heif_suberror_code
+pattern Heif_suberror_Encoder_initialization = Heif_suberror_code 5001
+
+{-| __C declaration:__ @heif_suberror_Encoder_encoding@
+
+    __defined at:__ @libheif\/heif_error.h 276:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Encoder_encoding :: Heif_suberror_code
+pattern Heif_suberror_Encoder_encoding = Heif_suberror_code 5002
+
+{-| __C declaration:__ @heif_suberror_Encoder_cleanup@
+
+    __defined at:__ @libheif\/heif_error.h 277:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Encoder_cleanup :: Heif_suberror_code
+pattern Heif_suberror_Encoder_cleanup = Heif_suberror_code 5003
+
+{-| __C declaration:__ @heif_suberror_Too_many_regions@
+
+    __defined at:__ @libheif\/heif_error.h 279:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Too_many_regions :: Heif_suberror_code
+pattern Heif_suberror_Too_many_regions = Heif_suberror_code 5004
+
+{-| __C declaration:__ @heif_suberror_Plugin_loading_error@
+
+    __defined at:__ @libheif\/heif_error.h 284:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Plugin_loading_error :: Heif_suberror_code
+pattern Heif_suberror_Plugin_loading_error = Heif_suberror_code 6000
+
+{-| __C declaration:__ @heif_suberror_Plugin_is_not_loaded@
+
+    __defined at:__ @libheif\/heif_error.h 285:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Plugin_is_not_loaded :: Heif_suberror_code
+pattern Heif_suberror_Plugin_is_not_loaded = Heif_suberror_code 6001
+
+{-| __C declaration:__ @heif_suberror_Cannot_read_plugin_directory@
+
+    __defined at:__ @libheif\/heif_error.h 286:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_Cannot_read_plugin_directory :: Heif_suberror_code
+pattern Heif_suberror_Cannot_read_plugin_directory = Heif_suberror_code 6002
+
+{-| __C declaration:__ @heif_suberror_No_matching_decoder_installed@
+
+    __defined at:__ @libheif\/heif_error.h 287:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_suberror_No_matching_decoder_installed :: Heif_suberror_code
+pattern Heif_suberror_No_matching_decoder_installed = Heif_suberror_code 6003
+
+{-# COMPLETE
+      Heif_suberror_Unspecified
+    , Heif_suberror_End_of_data
+    , Heif_suberror_Invalid_box_size
+    , Heif_suberror_No_ftyp_box
+    , Heif_suberror_No_idat_box
+    , Heif_suberror_No_meta_box
+    , Heif_suberror_No_hdlr_box
+    , Heif_suberror_No_hvcC_box
+    , Heif_suberror_No_pitm_box
+    , Heif_suberror_No_ipco_box
+    , Heif_suberror_No_ipma_box
+    , Heif_suberror_No_iloc_box
+    , Heif_suberror_No_iinf_box
+    , Heif_suberror_No_iprp_box
+    , Heif_suberror_No_iref_box
+    , Heif_suberror_No_pict_handler
+    , Heif_suberror_Ipma_box_references_nonexisting_property
+    , Heif_suberror_No_properties_assigned_to_item
+    , Heif_suberror_No_item_data
+    , Heif_suberror_Invalid_grid_data
+    , Heif_suberror_Missing_grid_images
+    , Heif_suberror_Invalid_clean_aperture
+    , Heif_suberror_Invalid_overlay_data
+    , Heif_suberror_Overlay_image_outside_of_canvas
+    , Heif_suberror_Auxiliary_image_type_unspecified
+    , Heif_suberror_No_or_invalid_primary_item
+    , Heif_suberror_No_infe_box
+    , Heif_suberror_Unknown_color_profile_type
+    , Heif_suberror_Wrong_tile_image_chroma_format
+    , Heif_suberror_Invalid_fractional_number
+    , Heif_suberror_Invalid_image_size
+    , Heif_suberror_Invalid_pixi_box
+    , Heif_suberror_No_av1C_box
+    , Heif_suberror_Wrong_tile_image_pixel_depth
+    , Heif_suberror_Unknown_NCLX_color_primaries
+    , Heif_suberror_Unknown_NCLX_transfer_characteristics
+    , Heif_suberror_Unknown_NCLX_matrix_coefficients
+    , Heif_suberror_Invalid_region_data
+    , Heif_suberror_No_ispe_property
+    , Heif_suberror_Camera_intrinsic_matrix_undefined
+    , Heif_suberror_Camera_extrinsic_matrix_undefined
+    , Heif_suberror_Invalid_J2K_codestream
+    , Heif_suberror_No_vvcC_box
+    , Heif_suberror_No_icbr_box
+    , Heif_suberror_No_avcC_box
+    , Heif_suberror_Invalid_mini_box
+    , Heif_suberror_Decompression_invalid_data
+    , Heif_suberror_No_moov_box
+    , Heif_suberror_NCLX_colr_VUI_mismatch
+    , Heif_suberror_Security_limit_exceeded
+    , Heif_suberror_Compression_initialisation_error
+    , Heif_suberror_Nonexisting_item_referenced
+    , Heif_suberror_Null_pointer_argument
+    , Heif_suberror_Nonexisting_image_channel_referenced
+    , Heif_suberror_Unsupported_plugin_version
+    , Heif_suberror_Unsupported_writer_version
+    , Heif_suberror_Unsupported_parameter
+    , Heif_suberror_Invalid_parameter_value
+    , Heif_suberror_Invalid_property
+    , Heif_suberror_Item_reference_cycle
+    , Heif_suberror_Unsupported_codec
+    , Heif_suberror_Unsupported_image_type
+    , Heif_suberror_Unsupported_data_version
+    , Heif_suberror_Unsupported_color_conversion
+    , Heif_suberror_Unsupported_item_construction_method
+    , Heif_suberror_Unsupported_header_compression_method
+    , Heif_suberror_Unsupported_generic_compression_method
+    , Heif_suberror_Unsupported_essential_property
+    , Heif_suberror_Unsupported_track_type
+    , Heif_suberror_Unsupported_bit_depth
+    , Heif_suberror_Cannot_write_output_data
+    , Heif_suberror_Encoder_initialization
+    , Heif_suberror_Encoder_encoding
+    , Heif_suberror_Encoder_cleanup
+    , Heif_suberror_Too_many_regions
+    , Heif_suberror_Plugin_loading_error
+    , Heif_suberror_Plugin_is_not_loaded
+    , Heif_suberror_Cannot_read_plugin_directory
+    , Heif_suberror_No_matching_decoder_installed
+  #-}
+
+{-| __C declaration:__ @struct heif_error@
+
+    __defined at:__ @libheif\/heif_error.h 291:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_error = Heif_error
+  { heif_error_code :: Heif_error_code
+    {- ^ __C declaration:__ @code@
+
+         __defined at:__ @libheif\/heif_error.h 294:19@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_error_subcode :: Heif_suberror_code
+    {- ^ __C declaration:__ @subcode@
+
+         __defined at:__ @libheif\/heif_error.h 297:22@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_error_message :: PtrConst.PtrConst BG.CChar
+    {- ^ __C declaration:__ @message@
+
+         __defined at:__ @libheif\/heif_error.h 300:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_error where
+
+  staticSizeOf = \_ -> (12 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_error where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_error
+      <*> HasCField.readRaw (BG.Proxy @"heif_error_code") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_error_subcode") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_error_message") ptr0
+
+instance Marshal.WriteRaw Heif_error where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_error heif_error_code2 heif_error_subcode3 heif_error_message4 ->
+               HasCField.writeRaw (BG.Proxy @"heif_error_code") ptr0 heif_error_code2
+            >> HasCField.writeRaw (BG.Proxy @"heif_error_subcode") ptr0 heif_error_subcode3
+            >> HasCField.writeRaw (BG.Proxy @"heif_error_message") ptr0 heif_error_message4
+
+deriving via Marshal.EquivStorable Heif_error instance BG.Storable Heif_error
+
+deriving via Struct.IsStructViaReadRaw Heif_error instance Struct.IsStruct Heif_error
+
+{-| __C declaration:__ @code@
+
+    __defined at:__ @libheif\/heif_error.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_error_code
+         ) => BG.CompatHasField.HasField "heif_error_code" Heif_error ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_error { heif_error_code = y1
+                     , heif_error_subcode = BG.getField @"heif_error_subcode" x0
+                     , heif_error_message = BG.getField @"heif_error_message" x0
+                     }
+      , BG.getField @"heif_error_code" x0
+      )
+
+instance ( ty ~ Heif_error_code
+         ) => BG.HasField "heif_error_code" (BG.Ptr Heif_error) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_error_code")
+
+instance HasCField.HasCField Heif_error "heif_error_code" where
+
+  type CFieldType Heif_error "heif_error_code" =
+    Heif_error_code
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @subcode@
+
+    __defined at:__ @libheif\/heif_error.h 297:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_suberror_code
+         ) => BG.CompatHasField.HasField "heif_error_subcode" Heif_error ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_error { heif_error_subcode = y1
+                     , heif_error_code = BG.getField @"heif_error_code" x0
+                     , heif_error_message = BG.getField @"heif_error_message" x0
+                     }
+      , BG.getField @"heif_error_subcode" x0
+      )
+
+instance ( ty ~ Heif_suberror_code
+         ) => BG.HasField "heif_error_subcode" (BG.Ptr Heif_error) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_error_subcode")
+
+instance HasCField.HasCField Heif_error "heif_error_subcode" where
+
+  type CFieldType Heif_error "heif_error_subcode" =
+    Heif_suberror_code
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @message@
+
+    __defined at:__ @libheif\/heif_error.h 300:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.CompatHasField.HasField "heif_error_message" Heif_error ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_error { heif_error_message = y1
+                     , heif_error_code = BG.getField @"heif_error_code" x0
+                     , heif_error_subcode = BG.getField @"heif_error_subcode" x0
+                     }
+      , BG.getField @"heif_error_message" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.HasField "heif_error_message" (BG.Ptr Heif_error) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_error_message")
+
+instance HasCField.HasCField Heif_error "heif_error_message" where
+
+  type CFieldType Heif_error "heif_error_message" =
+    PtrConst.PtrConst BG.CChar
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @macro LIBHEIF_MAKE_VERSION@
+
+    __defined at:__ @libheif\/heif_library.h 86:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_MAKE_VERSION :: forall a0 b1 c2. C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1) => C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2) => C.Expr.HostPlatform.Shift c2 BG.CInt => C.Expr.HostPlatform.Shift b1 BG.CInt => C.Expr.HostPlatform.Shift a0 BG.CInt => a0 -> b1 -> c2 -> C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2)
+lIBHEIF_MAKE_VERSION =
+  \h0 ->
+    \m1 ->
+      \l2 ->
+        (C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform..|.) ((C.Expr.HostPlatform.<<) h0 (24 :: BG.CInt)) ((C.Expr.HostPlatform.<<) m1 (16 :: BG.CInt))) ((C.Expr.HostPlatform.<<) l2 (8 :: BG.CInt))
+
+{-| __C declaration:__ @macro LIBHEIF_HAVE_VERSION@
+
+    __defined at:__ @libheif\/heif_library.h 87:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_HAVE_VERSION :: forall a0 b1 c2. C.Expr.HostPlatform.RelOrd BG.CInt (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2)) => C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1)) (C.Expr.HostPlatform.ShiftRes c2) => C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) (C.Expr.HostPlatform.ShiftRes b1) => C.Expr.HostPlatform.Shift a0 BG.CInt => C.Expr.HostPlatform.Shift b1 BG.CInt => C.Expr.HostPlatform.Shift c2 BG.CInt => a0 -> b1 -> c2 -> BG.CInt
+lIBHEIF_HAVE_VERSION =
+  \h0 ->
+    \m1 ->
+      \l2 ->
+        (C.Expr.HostPlatform.>=) lIBHEIF_NUMERIC_VERSION (lIBHEIF_MAKE_VERSION h0 m1 l2)
+
+{-| __C declaration:__ @struct heif_context@
+
+    __defined at:__ @libheif\/heif_library.h 89:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_context
+
+{-| __C declaration:__ @struct heif_image_handle@
+
+    __defined at:__ @libheif\/heif_library.h 90:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_image_handle
+
+{-| __C declaration:__ @heif_item_id@
+
+    __defined at:__ @libheif\/heif_library.h 92:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_item_id = Heif_item_id
+  { unwrapHeif_item_id :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_item_id" Heif_item_id ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_item_id {unwrapHeif_item_id = y1}
+      , BG.getField @"unwrapHeif_item_id" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_item_id" (BG.Ptr Heif_item_id) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_item_id")
+
+instance HasCField.HasCField Heif_item_id "unwrapHeif_item_id" where
+
+  type CFieldType Heif_item_id "unwrapHeif_item_id" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_property_id@
+
+    __defined at:__ @libheif\/heif_library.h 93:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_property_id = Heif_property_id
+  { unwrapHeif_property_id :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_property_id" Heif_property_id ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_property_id {unwrapHeif_property_id = y1}
+      , BG.getField @"unwrapHeif_property_id" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_property_id" (BG.Ptr Heif_property_id) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_property_id")
+
+instance HasCField.HasCField Heif_property_id "unwrapHeif_property_id" where
+
+  type CFieldType Heif_property_id "unwrapHeif_property_id" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @struct heif_init_params@
+
+    __defined at:__ @libheif\/heif_library.h 105:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_init_params = Heif_init_params
+  { heif_init_params_version :: BG.CInt
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_library.h 107:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_init_params where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_init_params where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_init_params
+      <*> HasCField.readRaw (BG.Proxy @"heif_init_params_version") ptr0
+
+instance Marshal.WriteRaw Heif_init_params where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_init_params heif_init_params_version2 ->
+            HasCField.writeRaw (BG.Proxy @"heif_init_params_version") ptr0 heif_init_params_version2
+
+deriving via Marshal.EquivStorable Heif_init_params instance BG.Storable Heif_init_params
+
+deriving via Struct.IsStructViaReadRaw Heif_init_params instance Struct.IsStruct Heif_init_params
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_library.h 107:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_init_params_version" Heif_init_params ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_init_params {heif_init_params_version = y1}
+      , BG.getField @"heif_init_params_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_init_params_version" (BG.Ptr Heif_init_params) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_init_params_version")
+
+instance HasCField.HasCField Heif_init_params "heif_init_params_version" where
+
+  type CFieldType Heif_init_params "heif_init_params_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @enum heif_plugin_type@
+
+    __defined at:__ @libheif\/heif_library.h 155:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_plugin_type = Heif_plugin_type
+  { unwrapHeif_plugin_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_plugin_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_plugin_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_plugin_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_plugin_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_plugin_type unwrapHeif_plugin_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_plugin_type2
+
+deriving via Marshal.EquivStorable Heif_plugin_type instance BG.Storable Heif_plugin_type
+
+deriving via BG.CUInt instance BG.Prim Heif_plugin_type
+
+instance CEnum.CEnum Heif_plugin_type where
+
+  type CEnumZ Heif_plugin_type = BG.CUInt
+
+  toCEnum = Heif_plugin_type
+
+  fromCEnum = BG.getField @"unwrapHeif_plugin_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_plugin_type_encoder")
+                                   , (1, BG.singleton "Heif_plugin_type_decoder")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_plugin_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_plugin_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_plugin_type where
+
+  minDeclaredValue = Heif_plugin_type_encoder
+
+  maxDeclaredValue = Heif_plugin_type_decoder
+
+instance Show Heif_plugin_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_plugin_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_plugin_type" Heif_plugin_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_type {unwrapHeif_plugin_type = y1}
+      , BG.getField @"unwrapHeif_plugin_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_plugin_type" (BG.Ptr Heif_plugin_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_plugin_type")
+
+instance HasCField.HasCField Heif_plugin_type "unwrapHeif_plugin_type" where
+
+  type CFieldType Heif_plugin_type "unwrapHeif_plugin_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_plugin_type_encoder@
+
+    __defined at:__ @libheif\/heif_library.h 157:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_plugin_type_encoder :: Heif_plugin_type
+pattern Heif_plugin_type_encoder = Heif_plugin_type 0
+
+{-| __C declaration:__ @heif_plugin_type_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_plugin_type_decoder :: Heif_plugin_type
+pattern Heif_plugin_type_decoder = Heif_plugin_type 1
+
+{-| __C declaration:__ @struct heif_plugin_info@
+
+    __defined at:__ @libheif\/heif_library.h 161:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_plugin_info = Heif_plugin_info
+  { heif_plugin_info_version :: BG.CInt
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_library.h 163:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_plugin_info_type :: Heif_plugin_type
+    {- ^ __C declaration:__ @type@
+
+         __defined at:__ @libheif\/heif_library.h 164:20@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_plugin_info_plugin :: PtrConst.PtrConst BG.Void
+    {- ^ __C declaration:__ @plugin@
+
+         __defined at:__ @libheif\/heif_library.h 165:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_plugin_info_internal_handle :: BG.Ptr BG.Void
+    {- ^ __C declaration:__ @internal_handle@
+
+         __defined at:__ @libheif\/heif_library.h 166:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_plugin_info where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_plugin_info where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_plugin_info
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_type") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_plugin") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_plugin_info_internal_handle") ptr0
+
+instance Marshal.WriteRaw Heif_plugin_info where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_plugin_info
+            heif_plugin_info_version2
+            heif_plugin_info_type3
+            heif_plugin_info_plugin4
+            heif_plugin_info_internal_handle5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_plugin_info_version") ptr0 heif_plugin_info_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_plugin_info_type") ptr0 heif_plugin_info_type3
+              >> HasCField.writeRaw (BG.Proxy @"heif_plugin_info_plugin") ptr0 heif_plugin_info_plugin4
+              >> HasCField.writeRaw (BG.Proxy @"heif_plugin_info_internal_handle") ptr0 heif_plugin_info_internal_handle5
+
+deriving via Marshal.EquivStorable Heif_plugin_info instance BG.Storable Heif_plugin_info
+
+deriving via Struct.IsStructViaReadRaw Heif_plugin_info instance Struct.IsStruct Heif_plugin_info
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_library.h 163:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_plugin_info_version" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_version = y1
+                           , heif_plugin_info_type = BG.getField @"heif_plugin_info_type" x0
+                           , heif_plugin_info_plugin = BG.getField @"heif_plugin_info_plugin" x0
+                           , heif_plugin_info_internal_handle = BG.getField @"heif_plugin_info_internal_handle" x0
+                           }
+      , BG.getField @"heif_plugin_info_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_plugin_info_version" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_version")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_version" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @type@
+
+    __defined at:__ @libheif\/heif_library.h 164:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_plugin_type
+         ) => BG.CompatHasField.HasField "heif_plugin_info_type" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_type = y1
+                           , heif_plugin_info_version = BG.getField @"heif_plugin_info_version" x0
+                           , heif_plugin_info_plugin = BG.getField @"heif_plugin_info_plugin" x0
+                           , heif_plugin_info_internal_handle = BG.getField @"heif_plugin_info_internal_handle" x0
+                           }
+      , BG.getField @"heif_plugin_info_type" x0
+      )
+
+instance ( ty ~ Heif_plugin_type
+         ) => BG.HasField "heif_plugin_info_type" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_type")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_type" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_type" =
+    Heif_plugin_type
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @plugin@
+
+    __defined at:__ @libheif\/heif_library.h 165:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.Void
+         ) => BG.CompatHasField.HasField "heif_plugin_info_plugin" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_plugin = y1
+                           , heif_plugin_info_version = BG.getField @"heif_plugin_info_version" x0
+                           , heif_plugin_info_type = BG.getField @"heif_plugin_info_type" x0
+                           , heif_plugin_info_internal_handle = BG.getField @"heif_plugin_info_internal_handle" x0
+                           }
+      , BG.getField @"heif_plugin_info_plugin" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.Void
+         ) => BG.HasField "heif_plugin_info_plugin" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_plugin")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_plugin" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_plugin" =
+    PtrConst.PtrConst BG.Void
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @internal_handle@
+
+    __defined at:__ @libheif\/heif_library.h 166:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.CompatHasField.HasField "heif_plugin_info_internal_handle" Heif_plugin_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_plugin_info { heif_plugin_info_internal_handle = y1
+                           , heif_plugin_info_version = BG.getField @"heif_plugin_info_version" x0
+                           , heif_plugin_info_type = BG.getField @"heif_plugin_info_type" x0
+                           , heif_plugin_info_plugin = BG.getField @"heif_plugin_info_plugin" x0
+                           }
+      , BG.getField @"heif_plugin_info_internal_handle" x0
+      )
+
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.HasField "heif_plugin_info_internal_handle" (BG.Ptr Heif_plugin_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_plugin_info_internal_handle")
+
+instance HasCField.HasCField Heif_plugin_info "heif_plugin_info_internal_handle" where
+
+  type CFieldType Heif_plugin_info "heif_plugin_info_internal_handle" =
+    BG.Ptr BG.Void
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @struct heif_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 193:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoder_plugin
+
+{-| __C declaration:__ @struct heif_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 194:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder_plugin
+
+{-| __C declaration:__ @enum heif_chroma@
+
+    __defined at:__ @libheif\/heif_image.h 53:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_chroma = Heif_chroma
+  { unwrapHeif_chroma :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_chroma where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_chroma where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_chroma
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_chroma where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_chroma unwrapHeif_chroma2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_chroma2
+
+deriving via Marshal.EquivStorable Heif_chroma instance BG.Storable Heif_chroma
+
+deriving via BG.CUInt instance BG.Prim Heif_chroma
+
+instance CEnum.CEnum Heif_chroma where
+
+  type CEnumZ Heif_chroma = BG.CUInt
+
+  toCEnum = Heif_chroma
+
+  fromCEnum = BG.getField @"unwrapHeif_chroma"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_chroma_planar")
+                                   , (1, BG.singleton "Heif_chroma_420")
+                                   , (2, BG.singleton "Heif_chroma_422")
+                                   , (3, BG.singleton "Heif_chroma_444")
+                                   , (10, BG.singleton "Heif_chroma_interleaved_RGB")
+                                   , (11, BG.singleton "Heif_chroma_interleaved_RGBA")
+                                   , (12, BG.singleton "Heif_chroma_interleaved_RRGGBB_BE")
+                                   , (13, BG.singleton "Heif_chroma_interleaved_RRGGBBAA_BE")
+                                   , (14, BG.singleton "Heif_chroma_interleaved_RRGGBB_LE")
+                                   , (15, BG.singleton "Heif_chroma_interleaved_RRGGBBAA_LE")
+                                   , (99, BG.singleton "Heif_chroma_undefined")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_chroma"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_chroma"
+
+instance Show Heif_chroma where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_chroma where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_chroma" Heif_chroma ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_chroma {unwrapHeif_chroma = y1}
+      , BG.getField @"unwrapHeif_chroma" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_chroma" (BG.Ptr Heif_chroma) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_chroma")
+
+instance HasCField.HasCField Heif_chroma "unwrapHeif_chroma" where
+
+  type CFieldType Heif_chroma "unwrapHeif_chroma" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_chroma_undefined@
+
+    __defined at:__ @libheif\/heif_image.h 55:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_undefined :: Heif_chroma
+pattern Heif_chroma_undefined = Heif_chroma 99
+
+{-| __C declaration:__ @heif_chroma_planar@
+
+    __defined at:__ @libheif\/heif_image.h 56:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_planar :: Heif_chroma
+pattern Heif_chroma_planar = Heif_chroma 0
+
+{-| __C declaration:__ @heif_chroma_420@
+
+    __defined at:__ @libheif\/heif_image.h 57:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_420 :: Heif_chroma
+pattern Heif_chroma_420 = Heif_chroma 1
+
+{-| __C declaration:__ @heif_chroma_422@
+
+    __defined at:__ @libheif\/heif_image.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_422 :: Heif_chroma
+pattern Heif_chroma_422 = Heif_chroma 2
+
+{-| __C declaration:__ @heif_chroma_444@
+
+    __defined at:__ @libheif\/heif_image.h 59:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_444 :: Heif_chroma
+pattern Heif_chroma_444 = Heif_chroma 3
+
+{-| __C declaration:__ @heif_chroma_interleaved_RGB@
+
+    __defined at:__ @libheif\/heif_image.h 60:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RGB :: Heif_chroma
+pattern Heif_chroma_interleaved_RGB = Heif_chroma 10
+
+{-| __C declaration:__ @heif_chroma_interleaved_RGBA@
+
+    __defined at:__ @libheif\/heif_image.h 61:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RGBA :: Heif_chroma
+pattern Heif_chroma_interleaved_RGBA = Heif_chroma 11
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBB_BE@
+
+    __defined at:__ @libheif\/heif_image.h 62:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBB_BE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBB_BE = Heif_chroma 12
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBBAA_BE@
+
+    __defined at:__ @libheif\/heif_image.h 63:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBBAA_BE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBBAA_BE = Heif_chroma 13
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBB_LE@
+
+    __defined at:__ @libheif\/heif_image.h 64:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBB_LE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBB_LE = Heif_chroma 14
+
+{-| __C declaration:__ @heif_chroma_interleaved_RRGGBBAA_LE@
+
+    __defined at:__ @libheif\/heif_image.h 65:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_interleaved_RRGGBBAA_LE :: Heif_chroma
+pattern Heif_chroma_interleaved_RRGGBBAA_LE = Heif_chroma 15
+
+{-| __C declaration:__ @enum heif_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 78:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_colorspace = Heif_colorspace
+  { unwrapHeif_colorspace :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_colorspace where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_colorspace where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_colorspace
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_colorspace where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_colorspace unwrapHeif_colorspace2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_colorspace2
+
+deriving via Marshal.EquivStorable Heif_colorspace instance BG.Storable Heif_colorspace
+
+deriving via BG.CUInt instance BG.Prim Heif_colorspace
+
+instance CEnum.CEnum Heif_colorspace where
+
+  type CEnumZ Heif_colorspace = BG.CUInt
+
+  toCEnum = Heif_colorspace
+
+  fromCEnum = BG.getField @"unwrapHeif_colorspace"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_colorspace_YCbCr")
+                                   , (1, BG.singleton "Heif_colorspace_RGB")
+                                   , (2, BG.singleton "Heif_colorspace_monochrome")
+                                   , (3, BG.singleton "Heif_colorspace_custom")
+                                   , (4, BG.singleton "Heif_colorspace_filter_array")
+                                   , (99, BG.singleton "Heif_colorspace_undefined")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_colorspace"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_colorspace"
+
+instance Show Heif_colorspace where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_colorspace where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_colorspace" Heif_colorspace ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_colorspace {unwrapHeif_colorspace = y1}
+      , BG.getField @"unwrapHeif_colorspace" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_colorspace" (BG.Ptr Heif_colorspace) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_colorspace")
+
+instance HasCField.HasCField Heif_colorspace "unwrapHeif_colorspace" where
+
+  type CFieldType Heif_colorspace "unwrapHeif_colorspace" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_colorspace_undefined@
+
+    __defined at:__ @libheif\/heif_image.h 80:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_undefined :: Heif_colorspace
+pattern Heif_colorspace_undefined = Heif_colorspace 99
+
+{-| __C declaration:__ @heif_colorspace_YCbCr@
+
+    __defined at:__ @libheif\/heif_image.h 86:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_YCbCr :: Heif_colorspace
+pattern Heif_colorspace_YCbCr = Heif_colorspace 0
+
+{-| __C declaration:__ @heif_colorspace_RGB@
+
+    __defined at:__ @libheif\/heif_image.h 98:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_RGB :: Heif_colorspace
+pattern Heif_colorspace_RGB = Heif_colorspace 1
+
+{-| __C declaration:__ @heif_colorspace_monochrome@
+
+    __defined at:__ @libheif\/heif_image.h 101:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_monochrome :: Heif_colorspace
+pattern Heif_colorspace_monochrome = Heif_colorspace 2
+
+{-| __C declaration:__ @heif_colorspace_custom@
+
+    __defined at:__ @libheif\/heif_image.h 106:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_custom :: Heif_colorspace
+pattern Heif_colorspace_custom = Heif_colorspace 3
+
+{-| __C declaration:__ @heif_colorspace_filter_array@
+
+    __defined at:__ @libheif\/heif_image.h 110:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_colorspace_filter_array :: Heif_colorspace
+pattern Heif_colorspace_filter_array = Heif_colorspace 4
+
+{-| __C declaration:__ @enum heif_channel@
+
+    __defined at:__ @libheif\/heif_image.h 115:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_channel = Heif_channel
+  { unwrapHeif_channel :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_channel where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_channel where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_channel
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_channel where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_channel unwrapHeif_channel2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_channel2
+
+deriving via Marshal.EquivStorable Heif_channel instance BG.Storable Heif_channel
+
+deriving via BG.CUInt instance BG.Prim Heif_channel
+
+instance CEnum.CEnum Heif_channel where
+
+  type CEnumZ Heif_channel = BG.CUInt
+
+  toCEnum = Heif_channel
+
+  fromCEnum = BG.getField @"unwrapHeif_channel"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_channel_Y")
+                                   , (1, BG.singleton "Heif_channel_Cb")
+                                   , (2, BG.singleton "Heif_channel_Cr")
+                                   , (3, BG.singleton "Heif_channel_R")
+                                   , (4, BG.singleton "Heif_channel_G")
+                                   , (5, BG.singleton "Heif_channel_B")
+                                   , (6, BG.singleton "Heif_channel_Alpha")
+                                   , (10, BG.singleton "Heif_channel_interleaved")
+                                   , (11, BG.singleton "Heif_channel_filter_array")
+                                   , (12, BG.singleton "Heif_channel_depth")
+                                   , (13, BG.singleton "Heif_channel_disparity")
+                                   , (65535, BG.singleton "Heif_channel_unknown")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_channel"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_channel"
+
+instance Show Heif_channel where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_channel where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_channel" Heif_channel ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_channel {unwrapHeif_channel = y1}
+      , BG.getField @"unwrapHeif_channel" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_channel" (BG.Ptr Heif_channel) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_channel")
+
+instance HasCField.HasCField Heif_channel "unwrapHeif_channel" where
+
+  type CFieldType Heif_channel "unwrapHeif_channel" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_channel_Y@
+
+    __defined at:__ @libheif\/heif_image.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Y :: Heif_channel
+pattern Heif_channel_Y = Heif_channel 0
+
+{-| __C declaration:__ @heif_channel_Cb@
+
+    __defined at:__ @libheif\/heif_image.h 118:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Cb :: Heif_channel
+pattern Heif_channel_Cb = Heif_channel 1
+
+{-| __C declaration:__ @heif_channel_Cr@
+
+    __defined at:__ @libheif\/heif_image.h 119:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Cr :: Heif_channel
+pattern Heif_channel_Cr = Heif_channel 2
+
+{-| __C declaration:__ @heif_channel_R@
+
+    __defined at:__ @libheif\/heif_image.h 120:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_R :: Heif_channel
+pattern Heif_channel_R = Heif_channel 3
+
+{-| __C declaration:__ @heif_channel_G@
+
+    __defined at:__ @libheif\/heif_image.h 121:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_G :: Heif_channel
+pattern Heif_channel_G = Heif_channel 4
+
+{-| __C declaration:__ @heif_channel_B@
+
+    __defined at:__ @libheif\/heif_image.h 122:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_B :: Heif_channel
+pattern Heif_channel_B = Heif_channel 5
+
+{-| __C declaration:__ @heif_channel_Alpha@
+
+    __defined at:__ @libheif\/heif_image.h 123:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_Alpha :: Heif_channel
+pattern Heif_channel_Alpha = Heif_channel 6
+
+{-| __C declaration:__ @heif_channel_interleaved@
+
+    __defined at:__ @libheif\/heif_image.h 124:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_interleaved :: Heif_channel
+pattern Heif_channel_interleaved = Heif_channel 10
+
+{-| __C declaration:__ @heif_channel_filter_array@
+
+    __defined at:__ @libheif\/heif_image.h 125:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_filter_array :: Heif_channel
+pattern Heif_channel_filter_array = Heif_channel 11
+
+{-| __C declaration:__ @heif_channel_depth@
+
+    __defined at:__ @libheif\/heif_image.h 126:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_depth :: Heif_channel
+pattern Heif_channel_depth = Heif_channel 12
+
+{-| __C declaration:__ @heif_channel_disparity@
+
+    __defined at:__ @libheif\/heif_image.h 127:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_disparity :: Heif_channel
+pattern Heif_channel_disparity = Heif_channel 13
+
+{-| __C declaration:__ @heif_channel_unknown@
+
+    __defined at:__ @libheif\/heif_image.h 128:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_channel_unknown :: Heif_channel
+pattern Heif_channel_unknown = Heif_channel 65535
+
+{-| __C declaration:__ @struct heif_image@
+
+    __defined at:__ @libheif\/heif_image.h 143:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_image
+
+{-| __C declaration:__ @struct heif_scaling_options@
+
+    __defined at:__ @libheif\/heif_image.h 283:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_scaling_options
+
+{-| __C declaration:__ @enum heif_chroma_downsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 34:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_chroma_downsampling_algorithm = Heif_chroma_downsampling_algorithm
+  { unwrapHeif_chroma_downsampling_algorithm :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_chroma_downsampling_algorithm where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_chroma_downsampling_algorithm where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_chroma_downsampling_algorithm
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_chroma_downsampling_algorithm where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_chroma_downsampling_algorithm unwrapHeif_chroma_downsampling_algorithm2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_chroma_downsampling_algorithm2
+
+deriving via Marshal.EquivStorable Heif_chroma_downsampling_algorithm instance BG.Storable Heif_chroma_downsampling_algorithm
+
+deriving via BG.CUInt instance BG.Prim Heif_chroma_downsampling_algorithm
+
+instance CEnum.CEnum Heif_chroma_downsampling_algorithm where
+
+  type CEnumZ Heif_chroma_downsampling_algorithm =
+    BG.CUInt
+
+  toCEnum = Heif_chroma_downsampling_algorithm
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_chroma_downsampling_algorithm"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_chroma_downsampling_nearest_neighbor")
+                                   , (2, BG.singleton "Heif_chroma_downsampling_average")
+                                   , (3, BG.singleton "Heif_chroma_downsampling_sharp_yuv")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_chroma_downsampling_algorithm"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_chroma_downsampling_algorithm"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_chroma_downsampling_algorithm where
+
+  minDeclaredValue =
+    Heif_chroma_downsampling_nearest_neighbor
+
+  maxDeclaredValue = Heif_chroma_downsampling_sharp_yuv
+
+instance Show Heif_chroma_downsampling_algorithm where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_chroma_downsampling_algorithm where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_chroma_downsampling_algorithm" Heif_chroma_downsampling_algorithm ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_chroma_downsampling_algorithm {unwrapHeif_chroma_downsampling_algorithm = y1}
+      , BG.getField @"unwrapHeif_chroma_downsampling_algorithm" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_chroma_downsampling_algorithm" (BG.Ptr Heif_chroma_downsampling_algorithm) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_chroma_downsampling_algorithm")
+
+instance HasCField.HasCField Heif_chroma_downsampling_algorithm "unwrapHeif_chroma_downsampling_algorithm" where
+
+  type CFieldType Heif_chroma_downsampling_algorithm "unwrapHeif_chroma_downsampling_algorithm" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_chroma_downsampling_nearest_neighbor@
+
+    __defined at:__ @libheif\/heif_color.h 36:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_downsampling_nearest_neighbor :: Heif_chroma_downsampling_algorithm
+pattern Heif_chroma_downsampling_nearest_neighbor = Heif_chroma_downsampling_algorithm 1
+
+{-| __C declaration:__ @heif_chroma_downsampling_average@
+
+    __defined at:__ @libheif\/heif_color.h 37:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_downsampling_average :: Heif_chroma_downsampling_algorithm
+pattern Heif_chroma_downsampling_average = Heif_chroma_downsampling_algorithm 2
+
+{-| __C declaration:__ @heif_chroma_downsampling_sharp_yuv@
+
+    __defined at:__ @libheif\/heif_color.h 41:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_downsampling_sharp_yuv :: Heif_chroma_downsampling_algorithm
+pattern Heif_chroma_downsampling_sharp_yuv = Heif_chroma_downsampling_algorithm 3
+
+{-| __C declaration:__ @enum heif_chroma_upsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 44:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_chroma_upsampling_algorithm = Heif_chroma_upsampling_algorithm
+  { unwrapHeif_chroma_upsampling_algorithm :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_chroma_upsampling_algorithm where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_chroma_upsampling_algorithm where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_chroma_upsampling_algorithm
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_chroma_upsampling_algorithm where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_chroma_upsampling_algorithm unwrapHeif_chroma_upsampling_algorithm2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_chroma_upsampling_algorithm2
+
+deriving via Marshal.EquivStorable Heif_chroma_upsampling_algorithm instance BG.Storable Heif_chroma_upsampling_algorithm
+
+deriving via BG.CUInt instance BG.Prim Heif_chroma_upsampling_algorithm
+
+instance CEnum.CEnum Heif_chroma_upsampling_algorithm where
+
+  type CEnumZ Heif_chroma_upsampling_algorithm =
+    BG.CUInt
+
+  toCEnum = Heif_chroma_upsampling_algorithm
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_chroma_upsampling_algorithm"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_chroma_upsampling_nearest_neighbor")
+                                   , (2, BG.singleton "Heif_chroma_upsampling_bilinear")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_chroma_upsampling_algorithm"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_chroma_upsampling_algorithm"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_chroma_upsampling_algorithm where
+
+  minDeclaredValue =
+    Heif_chroma_upsampling_nearest_neighbor
+
+  maxDeclaredValue = Heif_chroma_upsampling_bilinear
+
+instance Show Heif_chroma_upsampling_algorithm where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_chroma_upsampling_algorithm where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_chroma_upsampling_algorithm" Heif_chroma_upsampling_algorithm ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_chroma_upsampling_algorithm {unwrapHeif_chroma_upsampling_algorithm = y1}
+      , BG.getField @"unwrapHeif_chroma_upsampling_algorithm" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_chroma_upsampling_algorithm" (BG.Ptr Heif_chroma_upsampling_algorithm) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_chroma_upsampling_algorithm")
+
+instance HasCField.HasCField Heif_chroma_upsampling_algorithm "unwrapHeif_chroma_upsampling_algorithm" where
+
+  type CFieldType Heif_chroma_upsampling_algorithm "unwrapHeif_chroma_upsampling_algorithm" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_chroma_upsampling_nearest_neighbor@
+
+    __defined at:__ @libheif\/heif_color.h 46:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_upsampling_nearest_neighbor :: Heif_chroma_upsampling_algorithm
+pattern Heif_chroma_upsampling_nearest_neighbor = Heif_chroma_upsampling_algorithm 1
+
+{-| __C declaration:__ @heif_chroma_upsampling_bilinear@
+
+    __defined at:__ @libheif\/heif_color.h 47:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_chroma_upsampling_bilinear :: Heif_chroma_upsampling_algorithm
+pattern Heif_chroma_upsampling_bilinear = Heif_chroma_upsampling_algorithm 2
+
+{-| __C declaration:__ @struct heif_color_conversion_options@
+
+    __defined at:__ @libheif\/heif_color.h 51:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_color_conversion_options = Heif_color_conversion_options
+  { heif_color_conversion_options_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_color.h 54:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_preferred_chroma_downsampling_algorithm :: Heif_chroma_downsampling_algorithm
+    {- ^ __C declaration:__ @preferred_chroma_downsampling_algorithm@
+
+         __defined at:__ @libheif\/heif_color.h 58:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_preferred_chroma_upsampling_algorithm :: Heif_chroma_upsampling_algorithm
+    {- ^ __C declaration:__ @preferred_chroma_upsampling_algorithm@
+
+         __defined at:__ @libheif\/heif_color.h 59:36@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_only_use_preferred_chroma_algorithm :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @only_use_preferred_chroma_algorithm@
+
+         __defined at:__ @libheif\/heif_color.h 67:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_color_conversion_options where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_conversion_options where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_conversion_options
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_only_use_preferred_chroma_algorithm") ptr0
+
+instance Marshal.WriteRaw Heif_color_conversion_options where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_conversion_options
+            heif_color_conversion_options_version2
+            heif_color_conversion_options_preferred_chroma_downsampling_algorithm3
+            heif_color_conversion_options_preferred_chroma_upsampling_algorithm4
+            heif_color_conversion_options_only_use_preferred_chroma_algorithm5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_version") ptr0 heif_color_conversion_options_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm") ptr0 heif_color_conversion_options_preferred_chroma_downsampling_algorithm3
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm") ptr0 heif_color_conversion_options_preferred_chroma_upsampling_algorithm4
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_only_use_preferred_chroma_algorithm") ptr0 heif_color_conversion_options_only_use_preferred_chroma_algorithm5
+
+deriving via Marshal.EquivStorable Heif_color_conversion_options instance BG.Storable Heif_color_conversion_options
+
+deriving via Struct.IsStructViaReadRaw Heif_color_conversion_options instance Struct.IsStruct Heif_color_conversion_options
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_color.h 54:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_version" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_version = y1
+                                        , heif_color_conversion_options_preferred_chroma_downsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+                                        , heif_color_conversion_options_preferred_chroma_upsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+                                        , heif_color_conversion_options_only_use_preferred_chroma_algorithm = BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_conversion_options_version" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_version")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_version" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @preferred_chroma_downsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 58:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_chroma_downsampling_algorithm
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_preferred_chroma_downsampling_algorithm = y1
+                                        , heif_color_conversion_options_version = BG.getField @"heif_color_conversion_options_version" x0
+                                        , heif_color_conversion_options_preferred_chroma_upsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+                                        , heif_color_conversion_options_only_use_preferred_chroma_algorithm = BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+      )
+
+instance ( ty ~ Heif_chroma_downsampling_algorithm
+         ) => BG.HasField "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_downsampling_algorithm" =
+    Heif_chroma_downsampling_algorithm
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @preferred_chroma_upsampling_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 59:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_chroma_upsampling_algorithm
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_preferred_chroma_upsampling_algorithm = y1
+                                        , heif_color_conversion_options_version = BG.getField @"heif_color_conversion_options_version" x0
+                                        , heif_color_conversion_options_preferred_chroma_downsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+                                        , heif_color_conversion_options_only_use_preferred_chroma_algorithm = BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+      )
+
+instance ( ty ~ Heif_chroma_upsampling_algorithm
+         ) => BG.HasField "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_preferred_chroma_upsampling_algorithm" =
+    Heif_chroma_upsampling_algorithm
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @only_use_preferred_chroma_algorithm@
+
+    __defined at:__ @libheif\/heif_color.h 67:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_only_use_preferred_chroma_algorithm" Heif_color_conversion_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options { heif_color_conversion_options_only_use_preferred_chroma_algorithm = y1
+                                        , heif_color_conversion_options_version = BG.getField @"heif_color_conversion_options_version" x0
+                                        , heif_color_conversion_options_preferred_chroma_downsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_downsampling_algorithm" x0
+                                        , heif_color_conversion_options_preferred_chroma_upsampling_algorithm = BG.getField @"heif_color_conversion_options_preferred_chroma_upsampling_algorithm" x0
+                                        }
+      , BG.getField @"heif_color_conversion_options_only_use_preferred_chroma_algorithm" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_conversion_options_only_use_preferred_chroma_algorithm" (BG.Ptr Heif_color_conversion_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_only_use_preferred_chroma_algorithm")
+
+instance HasCField.HasCField Heif_color_conversion_options "heif_color_conversion_options_only_use_preferred_chroma_algorithm" where
+
+  type CFieldType Heif_color_conversion_options "heif_color_conversion_options_only_use_preferred_chroma_algorithm" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @enum heif_alpha_composition_mode@
+
+    __defined at:__ @libheif\/heif_color.h 74:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_alpha_composition_mode = Heif_alpha_composition_mode
+  { unwrapHeif_alpha_composition_mode :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_alpha_composition_mode where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_alpha_composition_mode where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_alpha_composition_mode
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_alpha_composition_mode where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_alpha_composition_mode unwrapHeif_alpha_composition_mode2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_alpha_composition_mode2
+
+deriving via Marshal.EquivStorable Heif_alpha_composition_mode instance BG.Storable Heif_alpha_composition_mode
+
+deriving via BG.CUInt instance BG.Prim Heif_alpha_composition_mode
+
+instance CEnum.CEnum Heif_alpha_composition_mode where
+
+  type CEnumZ Heif_alpha_composition_mode = BG.CUInt
+
+  toCEnum = Heif_alpha_composition_mode
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_alpha_composition_mode"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_alpha_composition_mode_none")
+                                   , (1, BG.singleton "Heif_alpha_composition_mode_solid_color")
+                                   , (2, BG.singleton "Heif_alpha_composition_mode_checkerboard")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_alpha_composition_mode"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_alpha_composition_mode"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_alpha_composition_mode where
+
+  minDeclaredValue = Heif_alpha_composition_mode_none
+
+  maxDeclaredValue =
+    Heif_alpha_composition_mode_checkerboard
+
+instance Show Heif_alpha_composition_mode where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_alpha_composition_mode where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_alpha_composition_mode" Heif_alpha_composition_mode ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_alpha_composition_mode {unwrapHeif_alpha_composition_mode = y1}
+      , BG.getField @"unwrapHeif_alpha_composition_mode" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_alpha_composition_mode" (BG.Ptr Heif_alpha_composition_mode) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_alpha_composition_mode")
+
+instance HasCField.HasCField Heif_alpha_composition_mode "unwrapHeif_alpha_composition_mode" where
+
+  type CFieldType Heif_alpha_composition_mode "unwrapHeif_alpha_composition_mode" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_alpha_composition_mode_none@
+
+    __defined at:__ @libheif\/heif_color.h 76:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_alpha_composition_mode_none :: Heif_alpha_composition_mode
+pattern Heif_alpha_composition_mode_none = Heif_alpha_composition_mode 0
+
+{-| __C declaration:__ @heif_alpha_composition_mode_solid_color@
+
+    __defined at:__ @libheif\/heif_color.h 77:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_alpha_composition_mode_solid_color :: Heif_alpha_composition_mode
+pattern Heif_alpha_composition_mode_solid_color = Heif_alpha_composition_mode 1
+
+{-| __C declaration:__ @heif_alpha_composition_mode_checkerboard@
+
+    __defined at:__ @libheif\/heif_color.h 78:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_alpha_composition_mode_checkerboard :: Heif_alpha_composition_mode
+pattern Heif_alpha_composition_mode_checkerboard = Heif_alpha_composition_mode 2
+
+{-| __C declaration:__ @struct heif_color_conversion_options_ext@
+
+    __defined at:__ @libheif\/heif_color.h 82:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_color_conversion_options_ext = Heif_color_conversion_options_ext
+  { heif_color_conversion_options_ext_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_color.h 84:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_alpha_composition_mode :: Heif_alpha_composition_mode
+    {- ^ __C declaration:__ @alpha_composition_mode@
+
+         __defined at:__ @libheif\/heif_color.h 88:31@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_background_red :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @background_red@
+
+         __defined at:__ @libheif\/heif_color.h 91:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_background_green :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @background_green@
+
+         __defined at:__ @libheif\/heif_color.h 91:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_background_blue :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @background_blue@
+
+         __defined at:__ @libheif\/heif_color.h 91:46@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_secondary_background_red :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @secondary_background_red@
+
+         __defined at:__ @libheif\/heif_color.h 92:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_secondary_background_green :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @secondary_background_green@
+
+         __defined at:__ @libheif\/heif_color.h 92:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_secondary_background_blue :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @secondary_background_blue@
+
+         __defined at:__ @libheif\/heif_color.h 92:66@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_conversion_options_ext_checkerboard_square_size :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @checkerboard_square_size@
+
+         __defined at:__ @libheif\/heif_color.h 93:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_color_conversion_options_ext where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_conversion_options_ext where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_conversion_options_ext
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_alpha_composition_mode") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_background_red") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_background_green") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_background_blue") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_red") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_green") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_blue") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_conversion_options_ext_checkerboard_square_size") ptr0
+
+instance Marshal.WriteRaw Heif_color_conversion_options_ext where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_conversion_options_ext
+            heif_color_conversion_options_ext_version2
+            heif_color_conversion_options_ext_alpha_composition_mode3
+            heif_color_conversion_options_ext_background_red4
+            heif_color_conversion_options_ext_background_green5
+            heif_color_conversion_options_ext_background_blue6
+            heif_color_conversion_options_ext_secondary_background_red7
+            heif_color_conversion_options_ext_secondary_background_green8
+            heif_color_conversion_options_ext_secondary_background_blue9
+            heif_color_conversion_options_ext_checkerboard_square_size10 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_version") ptr0 heif_color_conversion_options_ext_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_alpha_composition_mode") ptr0 heif_color_conversion_options_ext_alpha_composition_mode3
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_background_red") ptr0 heif_color_conversion_options_ext_background_red4
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_background_green") ptr0 heif_color_conversion_options_ext_background_green5
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_background_blue") ptr0 heif_color_conversion_options_ext_background_blue6
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_red") ptr0 heif_color_conversion_options_ext_secondary_background_red7
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_green") ptr0 heif_color_conversion_options_ext_secondary_background_green8
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_blue") ptr0 heif_color_conversion_options_ext_secondary_background_blue9
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_conversion_options_ext_checkerboard_square_size") ptr0 heif_color_conversion_options_ext_checkerboard_square_size10
+
+deriving via Marshal.EquivStorable Heif_color_conversion_options_ext instance BG.Storable Heif_color_conversion_options_ext
+
+deriving via Struct.IsStructViaReadRaw Heif_color_conversion_options_ext instance Struct.IsStruct Heif_color_conversion_options_ext
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_color.h 84:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_version" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_version = y1
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_conversion_options_ext_version" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_version")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_version" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @alpha_composition_mode@
+
+    __defined at:__ @libheif\/heif_color.h 88:31@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_alpha_composition_mode
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_alpha_composition_mode" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_alpha_composition_mode = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+      )
+
+instance ( ty ~ Heif_alpha_composition_mode
+         ) => BG.HasField "heif_color_conversion_options_ext_alpha_composition_mode" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_alpha_composition_mode")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_alpha_composition_mode" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_alpha_composition_mode" =
+    Heif_alpha_composition_mode
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @background_red@
+
+    __defined at:__ @libheif\/heif_color.h 91:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_background_red" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_background_red = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_background_red" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_background_red" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_background_red")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_red" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_red" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @background_green@
+
+    __defined at:__ @libheif\/heif_color.h 91:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_background_green" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_background_green = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_background_green" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_background_green" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_background_green")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_green" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_green" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 10
+
+{-| __C declaration:__ @background_blue@
+
+    __defined at:__ @libheif\/heif_color.h 91:46@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_background_blue" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_background_blue = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_background_blue" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_background_blue")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_blue" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_background_blue" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @secondary_background_red@
+
+    __defined at:__ @libheif\/heif_color.h 92:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_secondary_background_red" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_secondary_background_red = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_secondary_background_red" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_red")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_red" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_red" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 14
+
+{-| __C declaration:__ @secondary_background_green@
+
+    __defined at:__ @libheif\/heif_color.h 92:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_secondary_background_green" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_secondary_background_green = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_secondary_background_green" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_green")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_green" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_green" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @secondary_background_blue@
+
+    __defined at:__ @libheif\/heif_color.h 92:66@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_secondary_background_blue" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_secondary_background_blue = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_checkerboard_square_size = BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_secondary_background_blue" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_secondary_background_blue")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_blue" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_secondary_background_blue" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 18
+
+{-| __C declaration:__ @checkerboard_square_size@
+
+    __defined at:__ @libheif\/heif_color.h 93:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_color_conversion_options_ext_checkerboard_square_size" Heif_color_conversion_options_ext ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_conversion_options_ext { heif_color_conversion_options_ext_checkerboard_square_size = y1
+                                            , heif_color_conversion_options_ext_version = BG.getField @"heif_color_conversion_options_ext_version" x0
+                                            , heif_color_conversion_options_ext_alpha_composition_mode = BG.getField @"heif_color_conversion_options_ext_alpha_composition_mode" x0
+                                            , heif_color_conversion_options_ext_background_red = BG.getField @"heif_color_conversion_options_ext_background_red" x0
+                                            , heif_color_conversion_options_ext_background_green = BG.getField @"heif_color_conversion_options_ext_background_green" x0
+                                            , heif_color_conversion_options_ext_background_blue = BG.getField @"heif_color_conversion_options_ext_background_blue" x0
+                                            , heif_color_conversion_options_ext_secondary_background_red = BG.getField @"heif_color_conversion_options_ext_secondary_background_red" x0
+                                            , heif_color_conversion_options_ext_secondary_background_green = BG.getField @"heif_color_conversion_options_ext_secondary_background_green" x0
+                                            , heif_color_conversion_options_ext_secondary_background_blue = BG.getField @"heif_color_conversion_options_ext_secondary_background_blue" x0
+                                            }
+      , BG.getField @"heif_color_conversion_options_ext_checkerboard_square_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_color_conversion_options_ext_checkerboard_square_size" (BG.Ptr Heif_color_conversion_options_ext) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_conversion_options_ext_checkerboard_square_size")
+
+instance HasCField.HasCField Heif_color_conversion_options_ext "heif_color_conversion_options_ext_checkerboard_square_size" where
+
+  type CFieldType Heif_color_conversion_options_ext "heif_color_conversion_options_ext_checkerboard_square_size" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @enum heif_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 114:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_color_profile_type = Heif_color_profile_type
+  { unwrapHeif_color_profile_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_color_profile_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_profile_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_profile_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_color_profile_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_profile_type unwrapHeif_color_profile_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_color_profile_type2
+
+deriving via Marshal.EquivStorable Heif_color_profile_type instance BG.Storable Heif_color_profile_type
+
+deriving via BG.CUInt instance BG.Prim Heif_color_profile_type
+
+instance CEnum.CEnum Heif_color_profile_type where
+
+  type CEnumZ Heif_color_profile_type = BG.CUInt
+
+  toCEnum = Heif_color_profile_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_color_profile_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_color_profile_type_not_present")
+                                   , (1852009592, BG.singleton "Heif_color_profile_type_nclx")
+                                   , (1886547814, BG.singleton "Heif_color_profile_type_prof")
+                                   , (1917403971, BG.singleton "Heif_color_profile_type_rICC")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_color_profile_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_color_profile_type"
+
+instance Show Heif_color_profile_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_color_profile_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_color_profile_type" Heif_color_profile_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_type {unwrapHeif_color_profile_type = y1}
+      , BG.getField @"unwrapHeif_color_profile_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_color_profile_type" (BG.Ptr Heif_color_profile_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_color_profile_type")
+
+instance HasCField.HasCField Heif_color_profile_type "unwrapHeif_color_profile_type" where
+
+  type CFieldType Heif_color_profile_type "unwrapHeif_color_profile_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_color_profile_type_not_present@
+
+    __defined at:__ @libheif\/heif_color.h 116:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_not_present :: Heif_color_profile_type
+pattern Heif_color_profile_type_not_present = Heif_color_profile_type 0
+
+{-| __C declaration:__ @heif_color_profile_type_nclx@
+
+    __defined at:__ @libheif\/heif_color.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_nclx :: Heif_color_profile_type
+pattern Heif_color_profile_type_nclx = Heif_color_profile_type 1852009592
+
+{-| __C declaration:__ @heif_color_profile_type_rICC@
+
+    __defined at:__ @libheif\/heif_color.h 118:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_rICC :: Heif_color_profile_type
+pattern Heif_color_profile_type_rICC = Heif_color_profile_type 1917403971
+
+{-| __C declaration:__ @heif_color_profile_type_prof@
+
+    __defined at:__ @libheif\/heif_color.h 119:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_profile_type_prof :: Heif_color_profile_type
+pattern Heif_color_profile_type_prof = Heif_color_profile_type 1886547814
+
+{-| __C declaration:__ @enum heif_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 140:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_color_primaries = Heif_color_primaries
+  { unwrapHeif_color_primaries :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_color_primaries where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_primaries where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_primaries
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_color_primaries where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_primaries unwrapHeif_color_primaries2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_color_primaries2
+
+deriving via Marshal.EquivStorable Heif_color_primaries instance BG.Storable Heif_color_primaries
+
+deriving via BG.CUInt instance BG.Prim Heif_color_primaries
+
+instance CEnum.CEnum Heif_color_primaries where
+
+  type CEnumZ Heif_color_primaries = BG.CUInt
+
+  toCEnum = Heif_color_primaries
+
+  fromCEnum = BG.getField @"unwrapHeif_color_primaries"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_color_primaries_ITU_R_BT_709_5")
+                                   , (2, BG.singleton "Heif_color_primaries_unspecified")
+                                   , (4, BG.singleton "Heif_color_primaries_ITU_R_BT_470_6_System_M")
+                                   , (5, BG.singleton "Heif_color_primaries_ITU_R_BT_470_6_System_B_G")
+                                   , (6, BG.singleton "Heif_color_primaries_ITU_R_BT_601_6")
+                                   , (7, BG.singleton "Heif_color_primaries_SMPTE_240M")
+                                   , (8, BG.singleton "Heif_color_primaries_generic_film")
+                                   , (9, BG.singleton "Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0")
+                                   , (10, BG.singleton "Heif_color_primaries_SMPTE_ST_428_1")
+                                   , (11, BG.singleton "Heif_color_primaries_SMPTE_RP_431_2")
+                                   , (12, BG.singleton "Heif_color_primaries_SMPTE_EG_432_1")
+                                   , (22, BG.singleton "Heif_color_primaries_EBU_Tech_3213_E")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_color_primaries"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_color_primaries"
+
+instance Show Heif_color_primaries where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_color_primaries where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_color_primaries" Heif_color_primaries ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_primaries {unwrapHeif_color_primaries = y1}
+      , BG.getField @"unwrapHeif_color_primaries" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_color_primaries" (BG.Ptr Heif_color_primaries) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_color_primaries")
+
+instance HasCField.HasCField Heif_color_primaries "unwrapHeif_color_primaries" where
+
+  type CFieldType Heif_color_primaries "unwrapHeif_color_primaries" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_709_5@
+
+    __defined at:__ @libheif\/heif_color.h 142:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_709_5 :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_709_5 = Heif_color_primaries 1
+
+{-| __C declaration:__ @heif_color_primaries_unspecified@
+
+    __defined at:__ @libheif\/heif_color.h 143:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_unspecified :: Heif_color_primaries
+pattern Heif_color_primaries_unspecified = Heif_color_primaries 2
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_470_6_System_M@
+
+    __defined at:__ @libheif\/heif_color.h 144:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_M :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_M = Heif_color_primaries 4
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_470_6_System_B_G@
+
+    __defined at:__ @libheif\/heif_color.h 145:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_B_G :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_470_6_System_B_G = Heif_color_primaries 5
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_601_6@
+
+    __defined at:__ @libheif\/heif_color.h 146:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_601_6 :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_601_6 = Heif_color_primaries 6
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_240M@
+
+    __defined at:__ @libheif\/heif_color.h 147:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_240M :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_240M = Heif_color_primaries 7
+
+{-| __C declaration:__ @heif_color_primaries_generic_film@
+
+    __defined at:__ @libheif\/heif_color.h 148:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_generic_film :: Heif_color_primaries
+pattern Heif_color_primaries_generic_film = Heif_color_primaries 8
+
+{-| __C declaration:__ @heif_color_primaries_ITU_R_BT_2020_2_and_2100_0@
+
+    __defined at:__ @libheif\/heif_color.h 149:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0 :: Heif_color_primaries
+pattern Heif_color_primaries_ITU_R_BT_2020_2_and_2100_0 = Heif_color_primaries 9
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_ST_428_1@
+
+    __defined at:__ @libheif\/heif_color.h 150:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_ST_428_1 :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_ST_428_1 = Heif_color_primaries 10
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_RP_431_2@
+
+    __defined at:__ @libheif\/heif_color.h 151:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_RP_431_2 :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_RP_431_2 = Heif_color_primaries 11
+
+{-| __C declaration:__ @heif_color_primaries_SMPTE_EG_432_1@
+
+    __defined at:__ @libheif\/heif_color.h 152:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_SMPTE_EG_432_1 :: Heif_color_primaries
+pattern Heif_color_primaries_SMPTE_EG_432_1 = Heif_color_primaries 12
+
+{-| __C declaration:__ @heif_color_primaries_EBU_Tech_3213_E@
+
+    __defined at:__ @libheif\/heif_color.h 153:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_color_primaries_EBU_Tech_3213_E :: Heif_color_primaries
+pattern Heif_color_primaries_EBU_Tech_3213_E = Heif_color_primaries 22
+
+{-| __C declaration:__ @enum heif_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 156:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_transfer_characteristics = Heif_transfer_characteristics
+  { unwrapHeif_transfer_characteristics :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_transfer_characteristics where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_transfer_characteristics where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_transfer_characteristics
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_transfer_characteristics where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_transfer_characteristics unwrapHeif_transfer_characteristics2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_transfer_characteristics2
+
+deriving via Marshal.EquivStorable Heif_transfer_characteristics instance BG.Storable Heif_transfer_characteristics
+
+deriving via BG.CUInt instance BG.Prim Heif_transfer_characteristics
+
+instance CEnum.CEnum Heif_transfer_characteristics where
+
+  type CEnumZ Heif_transfer_characteristics = BG.CUInt
+
+  toCEnum = Heif_transfer_characteristics
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_transfer_characteristics"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_709_5")
+                                   , (2, BG.singleton "Heif_transfer_characteristic_unspecified")
+                                   , (4, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_470_6_System_M")
+                                   , (5, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G")
+                                   , (6, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_601_6")
+                                   , (7, BG.singleton "Heif_transfer_characteristic_SMPTE_240M")
+                                   , (8, BG.singleton "Heif_transfer_characteristic_linear")
+                                   , (9, BG.singleton "Heif_transfer_characteristic_logarithmic_100")
+                                   , (10, BG.singleton "Heif_transfer_characteristic_logarithmic_100_sqrt10")
+                                   , (11, BG.singleton "Heif_transfer_characteristic_IEC_61966_2_4")
+                                   , (12, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_1361")
+                                   , (13, BG.singleton "Heif_transfer_characteristic_IEC_61966_2_1")
+                                   , (14, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit")
+                                   , (15, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit")
+                                   , (16, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ")
+                                   , (17, BG.singleton "Heif_transfer_characteristic_SMPTE_ST_428_1")
+                                   , (18, BG.singleton "Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_transfer_characteristics"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_transfer_characteristics"
+
+instance Show Heif_transfer_characteristics where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_transfer_characteristics where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_transfer_characteristics" Heif_transfer_characteristics ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_transfer_characteristics {unwrapHeif_transfer_characteristics = y1}
+      , BG.getField @"unwrapHeif_transfer_characteristics" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_transfer_characteristics" (BG.Ptr Heif_transfer_characteristics) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_transfer_characteristics")
+
+instance HasCField.HasCField Heif_transfer_characteristics "unwrapHeif_transfer_characteristics" where
+
+  type CFieldType Heif_transfer_characteristics "unwrapHeif_transfer_characteristics" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_709_5@
+
+    __defined at:__ @libheif\/heif_color.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_709_5 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_709_5 = Heif_transfer_characteristics 1
+
+{-| __C declaration:__ @heif_transfer_characteristic_unspecified@
+
+    __defined at:__ @libheif\/heif_color.h 159:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_unspecified :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_unspecified = Heif_transfer_characteristics 2
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_470_6_System_M@
+
+    __defined at:__ @libheif\/heif_color.h 160:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_M :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_M = Heif_transfer_characteristics 4
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G@
+
+    __defined at:__ @libheif\/heif_color.h 161:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G = Heif_transfer_characteristics 5
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_601_6@
+
+    __defined at:__ @libheif\/heif_color.h 162:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_601_6 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_601_6 = Heif_transfer_characteristics 6
+
+{-| __C declaration:__ @heif_transfer_characteristic_SMPTE_240M@
+
+    __defined at:__ @libheif\/heif_color.h 163:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_SMPTE_240M :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_SMPTE_240M = Heif_transfer_characteristics 7
+
+{-| __C declaration:__ @heif_transfer_characteristic_linear@
+
+    __defined at:__ @libheif\/heif_color.h 164:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_linear :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_linear = Heif_transfer_characteristics 8
+
+{-| __C declaration:__ @heif_transfer_characteristic_logarithmic_100@
+
+    __defined at:__ @libheif\/heif_color.h 165:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_logarithmic_100 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_logarithmic_100 = Heif_transfer_characteristics 9
+
+{-| __C declaration:__ @heif_transfer_characteristic_logarithmic_100_sqrt10@
+
+    __defined at:__ @libheif\/heif_color.h 166:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_logarithmic_100_sqrt10 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_logarithmic_100_sqrt10 = Heif_transfer_characteristics 10
+
+{-| __C declaration:__ @heif_transfer_characteristic_IEC_61966_2_4@
+
+    __defined at:__ @libheif\/heif_color.h 167:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_IEC_61966_2_4 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_IEC_61966_2_4 = Heif_transfer_characteristics 11
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_1361@
+
+    __defined at:__ @libheif\/heif_color.h 168:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_1361 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_1361 = Heif_transfer_characteristics 12
+
+{-| __C declaration:__ @heif_transfer_characteristic_IEC_61966_2_1@
+
+    __defined at:__ @libheif\/heif_color.h 169:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_IEC_61966_2_1 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_IEC_61966_2_1 = Heif_transfer_characteristics 13
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2020_2_10bit@
+
+    __defined at:__ @libheif\/heif_color.h 170:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_10bit = Heif_transfer_characteristics 14
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2020_2_12bit@
+
+    __defined at:__ @libheif\/heif_color.h 171:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2020_2_12bit = Heif_transfer_characteristics 15
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2100_0_PQ@
+
+    __defined at:__ @libheif\/heif_color.h 172:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_PQ = Heif_transfer_characteristics 16
+
+{-| __C declaration:__ @heif_transfer_characteristic_SMPTE_ST_428_1@
+
+    __defined at:__ @libheif\/heif_color.h 173:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_SMPTE_ST_428_1 :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_SMPTE_ST_428_1 = Heif_transfer_characteristics 17
+
+{-| __C declaration:__ @heif_transfer_characteristic_ITU_R_BT_2100_0_HLG@
+
+    __defined at:__ @libheif\/heif_color.h 174:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG :: Heif_transfer_characteristics
+pattern Heif_transfer_characteristic_ITU_R_BT_2100_0_HLG = Heif_transfer_characteristics 18
+
+{-| __C declaration:__ @enum heif_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 177:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_matrix_coefficients = Heif_matrix_coefficients
+  { unwrapHeif_matrix_coefficients :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_matrix_coefficients where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_matrix_coefficients where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_matrix_coefficients
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_matrix_coefficients where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_matrix_coefficients unwrapHeif_matrix_coefficients2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_matrix_coefficients2
+
+deriving via Marshal.EquivStorable Heif_matrix_coefficients instance BG.Storable Heif_matrix_coefficients
+
+deriving via BG.CUInt instance BG.Prim Heif_matrix_coefficients
+
+instance CEnum.CEnum Heif_matrix_coefficients where
+
+  type CEnumZ Heif_matrix_coefficients = BG.CUInt
+
+  toCEnum = Heif_matrix_coefficients
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_matrix_coefficients"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_matrix_coefficients_RGB_GBR")
+                                   , (1, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_709_5")
+                                   , (2, BG.singleton "Heif_matrix_coefficients_unspecified")
+                                   , (4, BG.singleton "Heif_matrix_coefficients_US_FCC_T47")
+                                   , (5, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G")
+                                   , (6, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_601_6")
+                                   , (7, BG.singleton "Heif_matrix_coefficients_SMPTE_240M")
+                                   , (8, BG.singleton "Heif_matrix_coefficients_YCgCo")
+                                   , ( 9
+                                     , BG.singleton "Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance"
+                                     )
+                                   , (10, BG.singleton "Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance")
+                                   , (11, BG.singleton "Heif_matrix_coefficients_SMPTE_ST_2085")
+                                   , ( 12
+                                     , BG.singleton "Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance"
+                                     )
+                                   , ( 13
+                                     , BG.singleton "Heif_matrix_coefficients_chromaticity_derived_constant_luminance"
+                                     )
+                                   , (14, BG.singleton "Heif_matrix_coefficients_ICtCp")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_matrix_coefficients"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_matrix_coefficients"
+
+instance Show Heif_matrix_coefficients where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_matrix_coefficients where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_matrix_coefficients" Heif_matrix_coefficients ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_matrix_coefficients {unwrapHeif_matrix_coefficients = y1}
+      , BG.getField @"unwrapHeif_matrix_coefficients" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_matrix_coefficients" (BG.Ptr Heif_matrix_coefficients) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_matrix_coefficients")
+
+instance HasCField.HasCField Heif_matrix_coefficients "unwrapHeif_matrix_coefficients" where
+
+  type CFieldType Heif_matrix_coefficients "unwrapHeif_matrix_coefficients" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_matrix_coefficients_RGB_GBR@
+
+    __defined at:__ @libheif\/heif_color.h 179:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_RGB_GBR :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_RGB_GBR = Heif_matrix_coefficients 0
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_709_5@
+
+    __defined at:__ @libheif\/heif_color.h 180:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_709_5 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_709_5 = Heif_matrix_coefficients 1
+
+{-| __C declaration:__ @heif_matrix_coefficients_unspecified@
+
+    __defined at:__ @libheif\/heif_color.h 181:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_unspecified :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_unspecified = Heif_matrix_coefficients 2
+
+{-| __C declaration:__ @heif_matrix_coefficients_US_FCC_T47@
+
+    __defined at:__ @libheif\/heif_color.h 182:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_US_FCC_T47 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_US_FCC_T47 = Heif_matrix_coefficients 4
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G@
+
+    __defined at:__ @libheif\/heif_color.h 183:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G = Heif_matrix_coefficients 5
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_601_6@
+
+    __defined at:__ @libheif\/heif_color.h 184:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_601_6 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_601_6 = Heif_matrix_coefficients 6
+
+{-| __C declaration:__ @heif_matrix_coefficients_SMPTE_240M@
+
+    __defined at:__ @libheif\/heif_color.h 185:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_SMPTE_240M :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_SMPTE_240M = Heif_matrix_coefficients 7
+
+{-| __C declaration:__ @heif_matrix_coefficients_YCgCo@
+
+    __defined at:__ @libheif\/heif_color.h 186:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_YCgCo :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_YCgCo = Heif_matrix_coefficients 8
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 187:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance = Heif_matrix_coefficients 9
+
+{-| __C declaration:__ @heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 188:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance = Heif_matrix_coefficients 10
+
+{-| __C declaration:__ @heif_matrix_coefficients_SMPTE_ST_2085@
+
+    __defined at:__ @libheif\/heif_color.h 189:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_SMPTE_ST_2085 :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_SMPTE_ST_2085 = Heif_matrix_coefficients 11
+
+{-| __C declaration:__ @heif_matrix_coefficients_chromaticity_derived_non_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 190:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_chromaticity_derived_non_constant_luminance = Heif_matrix_coefficients 12
+
+{-| __C declaration:__ @heif_matrix_coefficients_chromaticity_derived_constant_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 191:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_chromaticity_derived_constant_luminance :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_chromaticity_derived_constant_luminance = Heif_matrix_coefficients 13
+
+{-| __C declaration:__ @heif_matrix_coefficients_ICtCp@
+
+    __defined at:__ @libheif\/heif_color.h 192:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_matrix_coefficients_ICtCp :: Heif_matrix_coefficients
+pattern Heif_matrix_coefficients_ICtCp = Heif_matrix_coefficients 14
+
+{-| __C declaration:__ @struct heif_color_profile_nclx@
+
+    __defined at:__ @libheif\/heif_color.h 195:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_color_profile_nclx = Heif_color_profile_nclx
+  { heif_color_profile_nclx_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_color.h 199:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primaries :: Heif_color_primaries
+    {- ^ __C declaration:__ @color_primaries@
+
+         __defined at:__ @libheif\/heif_color.h 201:24@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_transfer_characteristics :: Heif_transfer_characteristics
+    {- ^ __C declaration:__ @transfer_characteristics@
+
+         __defined at:__ @libheif\/heif_color.h 202:33@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_matrix_coefficients :: Heif_matrix_coefficients
+    {- ^ __C declaration:__ @matrix_coefficients@
+
+         __defined at:__ @libheif\/heif_color.h 203:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_full_range_flag :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @full_range_flag@
+
+         __defined at:__ @libheif\/heif_color.h 204:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_red_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_red_x@
+
+         __defined at:__ @libheif\/heif_color.h 208:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_red_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_red_y@
+
+         __defined at:__ @libheif\/heif_color.h 208:30@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_green_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_green_x@
+
+         __defined at:__ @libheif\/heif_color.h 209:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_green_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_green_y@
+
+         __defined at:__ @libheif\/heif_color.h 209:32@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_blue_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_blue_x@
+
+         __defined at:__ @libheif\/heif_color.h 210:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_blue_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_blue_y@
+
+         __defined at:__ @libheif\/heif_color.h 210:31@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_white_x :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_white_x@
+
+         __defined at:__ @libheif\/heif_color.h 211:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_color_profile_nclx_color_primary_white_y :: BG.CFloat
+    {- ^ __C declaration:__ @color_primary_white_y@
+
+         __defined at:__ @libheif\/heif_color.h 211:32@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_color_profile_nclx where
+
+  staticSizeOf = \_ -> (52 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_color_profile_nclx where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_color_profile_nclx
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primaries") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_transfer_characteristics") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_matrix_coefficients") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_full_range_flag") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_y") ptr0
+
+instance Marshal.WriteRaw Heif_color_profile_nclx where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_color_profile_nclx
+            heif_color_profile_nclx_version2
+            heif_color_profile_nclx_color_primaries3
+            heif_color_profile_nclx_transfer_characteristics4
+            heif_color_profile_nclx_matrix_coefficients5
+            heif_color_profile_nclx_full_range_flag6
+            heif_color_profile_nclx_color_primary_red_x7
+            heif_color_profile_nclx_color_primary_red_y8
+            heif_color_profile_nclx_color_primary_green_x9
+            heif_color_profile_nclx_color_primary_green_y10
+            heif_color_profile_nclx_color_primary_blue_x11
+            heif_color_profile_nclx_color_primary_blue_y12
+            heif_color_profile_nclx_color_primary_white_x13
+            heif_color_profile_nclx_color_primary_white_y14 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_version") ptr0 heif_color_profile_nclx_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primaries") ptr0 heif_color_profile_nclx_color_primaries3
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_transfer_characteristics") ptr0 heif_color_profile_nclx_transfer_characteristics4
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_matrix_coefficients") ptr0 heif_color_profile_nclx_matrix_coefficients5
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_full_range_flag") ptr0 heif_color_profile_nclx_full_range_flag6
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_x") ptr0 heif_color_profile_nclx_color_primary_red_x7
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_red_y") ptr0 heif_color_profile_nclx_color_primary_red_y8
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_x") ptr0 heif_color_profile_nclx_color_primary_green_x9
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_green_y") ptr0 heif_color_profile_nclx_color_primary_green_y10
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_x") ptr0 heif_color_profile_nclx_color_primary_blue_x11
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_y") ptr0 heif_color_profile_nclx_color_primary_blue_y12
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_x") ptr0 heif_color_profile_nclx_color_primary_white_x13
+              >> HasCField.writeRaw (BG.Proxy @"heif_color_profile_nclx_color_primary_white_y") ptr0 heif_color_profile_nclx_color_primary_white_y14
+
+deriving via Marshal.EquivStorable Heif_color_profile_nclx instance BG.Storable Heif_color_profile_nclx
+
+deriving via Struct.IsStructViaReadRaw Heif_color_profile_nclx instance Struct.IsStruct Heif_color_profile_nclx
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_color.h 199:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_version" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_version = y1
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_profile_nclx_version" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_version")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_version" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 201:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_color_primaries
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primaries" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primaries = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primaries" x0
+      )
+
+instance ( ty ~ Heif_color_primaries
+         ) => BG.HasField "heif_color_profile_nclx_color_primaries" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primaries")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primaries" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primaries" =
+    Heif_color_primaries
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 202:33@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_transfer_characteristics
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_transfer_characteristics" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_transfer_characteristics = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+      )
+
+instance ( ty ~ Heif_transfer_characteristics
+         ) => BG.HasField "heif_color_profile_nclx_transfer_characteristics" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_transfer_characteristics")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_transfer_characteristics" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_transfer_characteristics" =
+    Heif_transfer_characteristics
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 203:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_matrix_coefficients
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_matrix_coefficients" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_matrix_coefficients = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+      )
+
+instance ( ty ~ Heif_matrix_coefficients
+         ) => BG.HasField "heif_color_profile_nclx_matrix_coefficients" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_matrix_coefficients")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_matrix_coefficients" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_matrix_coefficients" =
+    Heif_matrix_coefficients
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @full_range_flag@
+
+    __defined at:__ @libheif\/heif_color.h 204:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_full_range_flag" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_full_range_flag = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_color_profile_nclx_full_range_flag" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_full_range_flag")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_full_range_flag" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_full_range_flag" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @color_primary_red_x@
+
+    __defined at:__ @libheif\/heif_color.h 208:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_red_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_red_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_red_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_red_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @color_primary_red_y@
+
+    __defined at:__ @libheif\/heif_color.h 208:30@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_red_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_red_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_red_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_red_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_red_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @color_primary_green_x@
+
+    __defined at:__ @libheif\/heif_color.h 209:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_green_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_green_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_green_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_green_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @color_primary_green_y@
+
+    __defined at:__ @libheif\/heif_color.h 209:32@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_green_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_green_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_green_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_green_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_green_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @color_primary_blue_x@
+
+    __defined at:__ @libheif\/heif_color.h 210:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_blue_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_blue_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_blue_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 36
+
+{-| __C declaration:__ @color_primary_blue_y@
+
+    __defined at:__ @libheif\/heif_color.h 210:31@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_blue_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_blue_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_blue_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_blue_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_blue_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @color_primary_white_x@
+
+    __defined at:__ @libheif\/heif_color.h 211:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_white_x" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_white_x = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_y = BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_white_x" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_white_x")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_x" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 44
+
+{-| __C declaration:__ @color_primary_white_y@
+
+    __defined at:__ @libheif\/heif_color.h 211:32@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_color_profile_nclx_color_primary_white_y" Heif_color_profile_nclx ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_color_profile_nclx { heif_color_profile_nclx_color_primary_white_y = y1
+                                  , heif_color_profile_nclx_version = BG.getField @"heif_color_profile_nclx_version" x0
+                                  , heif_color_profile_nclx_color_primaries = BG.getField @"heif_color_profile_nclx_color_primaries" x0
+                                  , heif_color_profile_nclx_transfer_characteristics = BG.getField @"heif_color_profile_nclx_transfer_characteristics" x0
+                                  , heif_color_profile_nclx_matrix_coefficients = BG.getField @"heif_color_profile_nclx_matrix_coefficients" x0
+                                  , heif_color_profile_nclx_full_range_flag = BG.getField @"heif_color_profile_nclx_full_range_flag" x0
+                                  , heif_color_profile_nclx_color_primary_red_x = BG.getField @"heif_color_profile_nclx_color_primary_red_x" x0
+                                  , heif_color_profile_nclx_color_primary_red_y = BG.getField @"heif_color_profile_nclx_color_primary_red_y" x0
+                                  , heif_color_profile_nclx_color_primary_green_x = BG.getField @"heif_color_profile_nclx_color_primary_green_x" x0
+                                  , heif_color_profile_nclx_color_primary_green_y = BG.getField @"heif_color_profile_nclx_color_primary_green_y" x0
+                                  , heif_color_profile_nclx_color_primary_blue_x = BG.getField @"heif_color_profile_nclx_color_primary_blue_x" x0
+                                  , heif_color_profile_nclx_color_primary_blue_y = BG.getField @"heif_color_profile_nclx_color_primary_blue_y" x0
+                                  , heif_color_profile_nclx_color_primary_white_x = BG.getField @"heif_color_profile_nclx_color_primary_white_x" x0
+                                  }
+      , BG.getField @"heif_color_profile_nclx_color_primary_white_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_color_profile_nclx_color_primary_white_y" (BG.Ptr Heif_color_profile_nclx) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_color_profile_nclx_color_primary_white_y")
+
+instance HasCField.HasCField Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_y" where
+
+  type CFieldType Heif_color_profile_nclx "heif_color_profile_nclx_color_primary_white_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @struct heif_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 285:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_content_light_level = Heif_content_light_level
+  { heif_content_light_level_max_content_light_level :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @max_content_light_level@
+
+         __defined at:__ @libheif\/heif_color.h 290:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_content_light_level_max_pic_average_light_level :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @max_pic_average_light_level@
+
+         __defined at:__ @libheif\/heif_color.h 297:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_content_light_level where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (2 :: Int)
+
+instance Marshal.ReadRaw Heif_content_light_level where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_content_light_level
+      <*> HasCField.readRaw (BG.Proxy @"heif_content_light_level_max_content_light_level") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_content_light_level_max_pic_average_light_level") ptr0
+
+instance Marshal.WriteRaw Heif_content_light_level where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_content_light_level
+            heif_content_light_level_max_content_light_level2
+            heif_content_light_level_max_pic_average_light_level3 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_content_light_level_max_content_light_level") ptr0 heif_content_light_level_max_content_light_level2
+              >> HasCField.writeRaw (BG.Proxy @"heif_content_light_level_max_pic_average_light_level") ptr0 heif_content_light_level_max_pic_average_light_level3
+
+deriving via Marshal.EquivStorable Heif_content_light_level instance BG.Storable Heif_content_light_level
+
+deriving via Struct.IsStructViaReadRaw Heif_content_light_level instance Struct.IsStruct Heif_content_light_level
+
+{-| __C declaration:__ @max_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 290:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_content_light_level_max_content_light_level" Heif_content_light_level ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_content_light_level { heif_content_light_level_max_content_light_level = y1
+                                   , heif_content_light_level_max_pic_average_light_level = BG.getField @"heif_content_light_level_max_pic_average_light_level" x0
+                                   }
+      , BG.getField @"heif_content_light_level_max_content_light_level" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_content_light_level_max_content_light_level" (BG.Ptr Heif_content_light_level) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_content_light_level_max_content_light_level")
+
+instance HasCField.HasCField Heif_content_light_level "heif_content_light_level_max_content_light_level" where
+
+  type CFieldType Heif_content_light_level "heif_content_light_level_max_content_light_level" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @max_pic_average_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 297:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_content_light_level_max_pic_average_light_level" Heif_content_light_level ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_content_light_level { heif_content_light_level_max_pic_average_light_level = y1
+                                   , heif_content_light_level_max_content_light_level = BG.getField @"heif_content_light_level_max_content_light_level" x0
+                                   }
+      , BG.getField @"heif_content_light_level_max_pic_average_light_level" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_content_light_level_max_pic_average_light_level" (BG.Ptr Heif_content_light_level) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_content_light_level_max_pic_average_light_level")
+
+instance HasCField.HasCField Heif_content_light_level "heif_content_light_level_max_pic_average_light_level" where
+
+  type CFieldType Heif_content_light_level "heif_content_light_level_max_pic_average_light_level" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 2
+
+{-| __C declaration:__ @struct heif_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 332:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_mastering_display_colour_volume = Heif_mastering_display_colour_volume
+  { heif_mastering_display_colour_volume_display_primaries_x :: CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @display_primaries_x@
+
+         __defined at:__ @libheif\/heif_color.h 340:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_display_primaries_y :: CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @display_primaries_y@
+
+         __defined at:__ @libheif\/heif_color.h 341:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_white_point_x :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @white_point_x@
+
+         __defined at:__ @libheif\/heif_color.h 348:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_white_point_y :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @white_point_y@
+
+         __defined at:__ @libheif\/heif_color.h 349:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_max_display_mastering_luminance :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 360:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_mastering_display_colour_volume_min_display_mastering_luminance :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @min_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 361:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_mastering_display_colour_volume where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_mastering_display_colour_volume where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_mastering_display_colour_volume
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_max_display_mastering_luminance") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_mastering_display_colour_volume_min_display_mastering_luminance") ptr0
+
+instance Marshal.WriteRaw Heif_mastering_display_colour_volume where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_mastering_display_colour_volume
+            heif_mastering_display_colour_volume_display_primaries_x2
+            heif_mastering_display_colour_volume_display_primaries_y3
+            heif_mastering_display_colour_volume_white_point_x4
+            heif_mastering_display_colour_volume_white_point_y5
+            heif_mastering_display_colour_volume_max_display_mastering_luminance6
+            heif_mastering_display_colour_volume_min_display_mastering_luminance7 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_x") ptr0 heif_mastering_display_colour_volume_display_primaries_x2
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_y") ptr0 heif_mastering_display_colour_volume_display_primaries_y3
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_x") ptr0 heif_mastering_display_colour_volume_white_point_x4
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_white_point_y") ptr0 heif_mastering_display_colour_volume_white_point_y5
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_max_display_mastering_luminance") ptr0 heif_mastering_display_colour_volume_max_display_mastering_luminance6
+              >> HasCField.writeRaw (BG.Proxy @"heif_mastering_display_colour_volume_min_display_mastering_luminance") ptr0 heif_mastering_display_colour_volume_min_display_mastering_luminance7
+
+deriving via Marshal.EquivStorable Heif_mastering_display_colour_volume instance BG.Storable Heif_mastering_display_colour_volume
+
+deriving via Struct.IsStructViaReadRaw Heif_mastering_display_colour_volume instance Struct.IsStruct Heif_mastering_display_colour_volume
+
+{-| __C declaration:__ @display_primaries_x@
+
+    __defined at:__ @libheif\/heif_color.h 340:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_display_primaries_x" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_display_primaries_x = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_display_primaries_x" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_x")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_x" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_x" =
+    CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @display_primaries_y@
+
+    __defined at:__ @libheif\/heif_color.h 341:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_display_primaries_y" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_display_primaries_y = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_display_primaries_y" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_display_primaries_y")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_y" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_display_primaries_y" =
+    CA.ConstantArray 3 HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 6
+
+{-| __C declaration:__ @white_point_x@
+
+    __defined at:__ @libheif\/heif_color.h 348:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_white_point_x" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_white_point_x = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_white_point_x" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_white_point_x")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_x" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_x" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @white_point_y@
+
+    __defined at:__ @libheif\/heif_color.h 349:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_white_point_y" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_white_point_y = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_mastering_display_colour_volume_white_point_y" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_white_point_y")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_y" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_white_point_y" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 14
+
+{-| __C declaration:__ @max_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 360:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_max_display_mastering_luminance" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_max_display_mastering_luminance = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_mastering_display_colour_volume_max_display_mastering_luminance" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_max_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_max_display_mastering_luminance" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_max_display_mastering_luminance" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @min_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 361:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_mastering_display_colour_volume_min_display_mastering_luminance" Heif_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_mastering_display_colour_volume { heif_mastering_display_colour_volume_min_display_mastering_luminance = y1
+                                               , heif_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_mastering_display_colour_volume_display_primaries_x" x0
+                                               , heif_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_mastering_display_colour_volume_display_primaries_y" x0
+                                               , heif_mastering_display_colour_volume_white_point_x = BG.getField @"heif_mastering_display_colour_volume_white_point_x" x0
+                                               , heif_mastering_display_colour_volume_white_point_y = BG.getField @"heif_mastering_display_colour_volume_white_point_y" x0
+                                               , heif_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                               }
+      , BG.getField @"heif_mastering_display_colour_volume_min_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_mastering_display_colour_volume_min_display_mastering_luminance" (BG.Ptr Heif_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_mastering_display_colour_volume_min_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_min_display_mastering_luminance" where
+
+  type CFieldType Heif_mastering_display_colour_volume "heif_mastering_display_colour_volume_min_display_mastering_luminance" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @struct heif_decoded_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 365:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoded_mastering_display_colour_volume = Heif_decoded_mastering_display_colour_volume
+  { heif_decoded_mastering_display_colour_volume_display_primaries_x :: CA.ConstantArray 3 BG.CFloat
+    {- ^ __C declaration:__ @display_primaries_x@
+
+         __defined at:__ @libheif\/heif_color.h 367:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_display_primaries_y :: CA.ConstantArray 3 BG.CFloat
+    {- ^ __C declaration:__ @display_primaries_y@
+
+         __defined at:__ @libheif\/heif_color.h 368:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_white_point_x :: BG.CFloat
+    {- ^ __C declaration:__ @white_point_x@
+
+         __defined at:__ @libheif\/heif_color.h 369:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_white_point_y :: BG.CFloat
+    {- ^ __C declaration:__ @white_point_y@
+
+         __defined at:__ @libheif\/heif_color.h 370:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance :: BG.CDouble
+    {- ^ __C declaration:__ @max_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 371:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance :: BG.CDouble
+    {- ^ __C declaration:__ @min_display_mastering_luminance@
+
+         __defined at:__ @libheif\/heif_color.h 372:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_decoded_mastering_display_colour_volume where
+
+  staticSizeOf = \_ -> (48 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_decoded_mastering_display_colour_volume where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_decoded_mastering_display_colour_volume
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_y") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance") ptr0
+
+instance Marshal.WriteRaw Heif_decoded_mastering_display_colour_volume where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_decoded_mastering_display_colour_volume
+            heif_decoded_mastering_display_colour_volume_display_primaries_x2
+            heif_decoded_mastering_display_colour_volume_display_primaries_y3
+            heif_decoded_mastering_display_colour_volume_white_point_x4
+            heif_decoded_mastering_display_colour_volume_white_point_y5
+            heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance6
+            heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance7 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_x") ptr0 heif_decoded_mastering_display_colour_volume_display_primaries_x2
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_y") ptr0 heif_decoded_mastering_display_colour_volume_display_primaries_y3
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_x") ptr0 heif_decoded_mastering_display_colour_volume_white_point_x4
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_y") ptr0 heif_decoded_mastering_display_colour_volume_white_point_y5
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance") ptr0 heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance6
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance") ptr0 heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance7
+
+deriving via Marshal.EquivStorable Heif_decoded_mastering_display_colour_volume instance BG.Storable Heif_decoded_mastering_display_colour_volume
+
+deriving via Struct.IsStructViaReadRaw Heif_decoded_mastering_display_colour_volume instance Struct.IsStruct Heif_decoded_mastering_display_colour_volume
+
+{-| __C declaration:__ @display_primaries_x@
+
+    __defined at:__ @libheif\/heif_color.h 367:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_x" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_display_primaries_x = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_x" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_x")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_x" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_x" =
+    CA.ConstantArray 3 BG.CFloat
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @display_primaries_y@
+
+    __defined at:__ @libheif\/heif_color.h 368:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_y" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_display_primaries_y = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 3 BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_display_primaries_y" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_display_primaries_y")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_y" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_display_primaries_y" =
+    CA.ConstantArray 3 BG.CFloat
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @white_point_x@
+
+    __defined at:__ @libheif\/heif_color.h 369:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_white_point_x" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_white_point_x = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_white_point_x" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_x")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_x" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_x" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @white_point_y@
+
+    __defined at:__ @libheif\/heif_color.h 370:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_white_point_y" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_white_point_y = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_white_point_y" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_white_point_y")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_y" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_white_point_y" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @max_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 371:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @min_display_mastering_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 372:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" Heif_decoded_mastering_display_colour_volume ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoded_mastering_display_colour_volume { heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance = y1
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_x = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_display_primaries_y = BG.getField @"heif_decoded_mastering_display_colour_volume_display_primaries_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_x = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_x" x0
+                                                       , heif_decoded_mastering_display_colour_volume_white_point_y = BG.getField @"heif_decoded_mastering_display_colour_volume_white_point_y" x0
+                                                       , heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance = BG.getField @"heif_decoded_mastering_display_colour_volume_max_display_mastering_luminance" x0
+                                                       }
+      , BG.getField @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" (BG.Ptr Heif_decoded_mastering_display_colour_volume) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance")
+
+instance HasCField.HasCField Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" where
+
+  type CFieldType Heif_decoded_mastering_display_colour_volume "heif_decoded_mastering_display_colour_volume_min_display_mastering_luminance" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @struct heif_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 378:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_ambient_viewing_environment = Heif_ambient_viewing_environment
+  { heif_ambient_viewing_environment_ambient_illumination :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @ambient_illumination@
+
+         __defined at:__ @libheif\/heif_color.h 384:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_ambient_viewing_environment_ambient_light_x :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @ambient_light_x@
+
+         __defined at:__ @libheif\/heif_color.h 393:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_ambient_viewing_environment_ambient_light_y :: HsBindgen.Runtime.LibC.Word16
+    {- ^ __C declaration:__ @ambient_light_y@
+
+         __defined at:__ @libheif\/heif_color.h 394:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_ambient_viewing_environment where
+
+  staticSizeOf = \_ -> (8 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_ambient_viewing_environment where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_ambient_viewing_environment
+      <*> HasCField.readRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_illumination") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_x") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_y") ptr0
+
+instance Marshal.WriteRaw Heif_ambient_viewing_environment where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_ambient_viewing_environment
+            heif_ambient_viewing_environment_ambient_illumination2
+            heif_ambient_viewing_environment_ambient_light_x3
+            heif_ambient_viewing_environment_ambient_light_y4 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_illumination") ptr0 heif_ambient_viewing_environment_ambient_illumination2
+              >> HasCField.writeRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_x") ptr0 heif_ambient_viewing_environment_ambient_light_x3
+              >> HasCField.writeRaw (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_y") ptr0 heif_ambient_viewing_environment_ambient_light_y4
+
+deriving via Marshal.EquivStorable Heif_ambient_viewing_environment instance BG.Storable Heif_ambient_viewing_environment
+
+deriving via Struct.IsStructViaReadRaw Heif_ambient_viewing_environment instance Struct.IsStruct Heif_ambient_viewing_environment
+
+{-| __C declaration:__ @ambient_illumination@
+
+    __defined at:__ @libheif\/heif_color.h 384:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_ambient_viewing_environment_ambient_illumination" Heif_ambient_viewing_environment ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_ambient_viewing_environment { heif_ambient_viewing_environment_ambient_illumination = y1
+                                           , heif_ambient_viewing_environment_ambient_light_x = BG.getField @"heif_ambient_viewing_environment_ambient_light_x" x0
+                                           , heif_ambient_viewing_environment_ambient_light_y = BG.getField @"heif_ambient_viewing_environment_ambient_light_y" x0
+                                           }
+      , BG.getField @"heif_ambient_viewing_environment_ambient_illumination" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_ambient_viewing_environment_ambient_illumination" (BG.Ptr Heif_ambient_viewing_environment) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_ambient_viewing_environment_ambient_illumination")
+
+instance HasCField.HasCField Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_illumination" where
+
+  type CFieldType Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_illumination" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @ambient_light_x@
+
+    __defined at:__ @libheif\/heif_color.h 393:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_ambient_viewing_environment_ambient_light_x" Heif_ambient_viewing_environment ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_ambient_viewing_environment { heif_ambient_viewing_environment_ambient_light_x = y1
+                                           , heif_ambient_viewing_environment_ambient_illumination = BG.getField @"heif_ambient_viewing_environment_ambient_illumination" x0
+                                           , heif_ambient_viewing_environment_ambient_light_y = BG.getField @"heif_ambient_viewing_environment_ambient_light_y" x0
+                                           }
+      , BG.getField @"heif_ambient_viewing_environment_ambient_light_x" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_ambient_viewing_environment_ambient_light_x" (BG.Ptr Heif_ambient_viewing_environment) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_x")
+
+instance HasCField.HasCField Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_x" where
+
+  type CFieldType Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_x" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @ambient_light_y@
+
+    __defined at:__ @libheif\/heif_color.h 394:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.CompatHasField.HasField "heif_ambient_viewing_environment_ambient_light_y" Heif_ambient_viewing_environment ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_ambient_viewing_environment { heif_ambient_viewing_environment_ambient_light_y = y1
+                                           , heif_ambient_viewing_environment_ambient_illumination = BG.getField @"heif_ambient_viewing_environment_ambient_illumination" x0
+                                           , heif_ambient_viewing_environment_ambient_light_x = BG.getField @"heif_ambient_viewing_environment_ambient_light_x" x0
+                                           }
+      , BG.getField @"heif_ambient_viewing_environment_ambient_light_y" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word16
+         ) => BG.HasField "heif_ambient_viewing_environment_ambient_light_y" (BG.Ptr Heif_ambient_viewing_environment) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_ambient_viewing_environment_ambient_light_y")
+
+instance HasCField.HasCField Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_y" where
+
+  type CFieldType Heif_ambient_viewing_environment "heif_ambient_viewing_environment_ambient_light_y" =
+    HsBindgen.Runtime.LibC.Word16
+
+  offset# = \_ -> \_ -> 6
+
+{-| __C declaration:__ @heif_brand2@
+
+    __defined at:__ @libheif\/heif_brands.h 35:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_brand2 = Heif_brand2
+  { unwrapHeif_brand2 :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_brand2" Heif_brand2 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_brand2 {unwrapHeif_brand2 = y1}
+      , BG.getField @"unwrapHeif_brand2" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_brand2" (BG.Ptr Heif_brand2) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_brand2")
+
+instance HasCField.HasCField Heif_brand2 "unwrapHeif_brand2" where
+
+  type CFieldType Heif_brand2 "unwrapHeif_brand2" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @enum heif_filetype_result@
+
+    __defined at:__ @libheif\/heif_brands.h 323:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_filetype_result = Heif_filetype_result
+  { unwrapHeif_filetype_result :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_filetype_result where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_filetype_result where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_filetype_result
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_filetype_result where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_filetype_result unwrapHeif_filetype_result2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_filetype_result2
+
+deriving via Marshal.EquivStorable Heif_filetype_result instance BG.Storable Heif_filetype_result
+
+deriving via BG.CUInt instance BG.Prim Heif_filetype_result
+
+instance CEnum.CEnum Heif_filetype_result where
+
+  type CEnumZ Heif_filetype_result = BG.CUInt
+
+  toCEnum = Heif_filetype_result
+
+  fromCEnum = BG.getField @"unwrapHeif_filetype_result"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_filetype_no")
+                                   , (1, BG.singleton "Heif_filetype_yes_supported")
+                                   , (2, BG.singleton "Heif_filetype_yes_unsupported")
+                                   , (3, BG.singleton "Heif_filetype_maybe")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_filetype_result"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_filetype_result"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_filetype_result where
+
+  minDeclaredValue = Heif_filetype_no
+
+  maxDeclaredValue = Heif_filetype_maybe
+
+instance Show Heif_filetype_result where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_filetype_result where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_filetype_result" Heif_filetype_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_filetype_result {unwrapHeif_filetype_result = y1}
+      , BG.getField @"unwrapHeif_filetype_result" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_filetype_result" (BG.Ptr Heif_filetype_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_filetype_result")
+
+instance HasCField.HasCField Heif_filetype_result "unwrapHeif_filetype_result" where
+
+  type CFieldType Heif_filetype_result "unwrapHeif_filetype_result" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_filetype_no@
+
+    __defined at:__ @libheif\/heif_brands.h 325:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_no :: Heif_filetype_result
+pattern Heif_filetype_no = Heif_filetype_result 0
+
+{-| __C declaration:__ @heif_filetype_yes_supported@
+
+    __defined at:__ @libheif\/heif_brands.h 326:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_yes_supported :: Heif_filetype_result
+pattern Heif_filetype_yes_supported = Heif_filetype_result 1
+
+{-| __C declaration:__ @heif_filetype_yes_unsupported@
+
+    __defined at:__ @libheif\/heif_brands.h 327:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_yes_unsupported :: Heif_filetype_result
+pattern Heif_filetype_yes_unsupported = Heif_filetype_result 2
+
+{-| __C declaration:__ @heif_filetype_maybe@
+
+    __defined at:__ @libheif\/heif_brands.h 328:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_filetype_maybe :: Heif_filetype_result
+pattern Heif_filetype_maybe = Heif_filetype_result 3
+
+{-| __C declaration:__ @enum heif_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 354:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_brand = Heif_brand
+  { unwrapHeif_brand :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_brand where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_brand where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_brand
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_brand where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_brand unwrapHeif_brand2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_brand2
+
+deriving via Marshal.EquivStorable Heif_brand instance BG.Storable Heif_brand
+
+deriving via BG.CUInt instance BG.Prim Heif_brand
+
+instance CEnum.CEnum Heif_brand where
+
+  type CEnumZ Heif_brand = BG.CUInt
+
+  toCEnum = Heif_brand
+
+  fromCEnum = BG.getField @"unwrapHeif_brand"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_unknown_brand")
+                                   , (1, BG.singleton "Heif_heic")
+                                   , (2, BG.singleton "Heif_heix")
+                                   , (3, BG.singleton "Heif_hevc")
+                                   , (4, BG.singleton "Heif_hevx")
+                                   , (5, BG.singleton "Heif_heim")
+                                   , (6, BG.singleton "Heif_heis")
+                                   , (7, BG.singleton "Heif_hevm")
+                                   , (8, BG.singleton "Heif_hevs")
+                                   , (9, BG.singleton "Heif_mif1")
+                                   , (10, BG.singleton "Heif_msf1")
+                                   , (11, BG.singleton "Heif_avif")
+                                   , (12, BG.singleton "Heif_avis")
+                                   , (13, BG.singleton "Heif_vvic")
+                                   , (14, BG.singleton "Heif_vvis")
+                                   , (15, BG.singleton "Heif_evbi")
+                                   , (16, BG.singleton "Heif_evbs")
+                                   , (17, BG.singleton "Heif_j2ki")
+                                   , (18, BG.singleton "Heif_j2is")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_brand"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_brand"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_brand where
+
+  minDeclaredValue = Heif_unknown_brand
+
+  maxDeclaredValue = Heif_j2is
+
+instance Show Heif_brand where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_brand where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_brand" Heif_brand ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 -> Heif_brand {unwrapHeif_brand = y1}
+      , BG.getField @"unwrapHeif_brand" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_brand" (BG.Ptr Heif_brand) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_brand")
+
+instance HasCField.HasCField Heif_brand "unwrapHeif_brand" where
+
+  type CFieldType Heif_brand "unwrapHeif_brand" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_unknown_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 356:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_unknown_brand :: Heif_brand
+pattern Heif_unknown_brand = Heif_brand 0
+
+{-| __C declaration:__ @heif_heic@
+
+    __defined at:__ @libheif\/heif_brands.h 357:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heic :: Heif_brand
+pattern Heif_heic = Heif_brand 1
+
+{-| __C declaration:__ @heif_heix@
+
+    __defined at:__ @libheif\/heif_brands.h 358:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heix :: Heif_brand
+pattern Heif_heix = Heif_brand 2
+
+{-| __C declaration:__ @heif_hevc@
+
+    __defined at:__ @libheif\/heif_brands.h 359:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevc :: Heif_brand
+pattern Heif_hevc = Heif_brand 3
+
+{-| __C declaration:__ @heif_hevx@
+
+    __defined at:__ @libheif\/heif_brands.h 359:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevx :: Heif_brand
+pattern Heif_hevx = Heif_brand 4
+
+{-| __C declaration:__ @heif_heim@
+
+    __defined at:__ @libheif\/heif_brands.h 360:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heim :: Heif_brand
+pattern Heif_heim = Heif_brand 5
+
+{-| __C declaration:__ @heif_heis@
+
+    __defined at:__ @libheif\/heif_brands.h 361:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_heis :: Heif_brand
+pattern Heif_heis = Heif_brand 6
+
+{-| __C declaration:__ @heif_hevm@
+
+    __defined at:__ @libheif\/heif_brands.h 362:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevm :: Heif_brand
+pattern Heif_hevm = Heif_brand 7
+
+{-| __C declaration:__ @heif_hevs@
+
+    __defined at:__ @libheif\/heif_brands.h 363:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_hevs :: Heif_brand
+pattern Heif_hevs = Heif_brand 8
+
+{-| __C declaration:__ @heif_mif1@
+
+    __defined at:__ @libheif\/heif_brands.h 364:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_mif1 :: Heif_brand
+pattern Heif_mif1 = Heif_brand 9
+
+{-| __C declaration:__ @heif_msf1@
+
+    __defined at:__ @libheif\/heif_brands.h 365:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_msf1 :: Heif_brand
+pattern Heif_msf1 = Heif_brand 10
+
+{-| __C declaration:__ @heif_avif@
+
+    __defined at:__ @libheif\/heif_brands.h 366:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_avif :: Heif_brand
+pattern Heif_avif = Heif_brand 11
+
+{-| __C declaration:__ @heif_avis@
+
+    __defined at:__ @libheif\/heif_brands.h 367:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_avis :: Heif_brand
+pattern Heif_avis = Heif_brand 12
+
+{-| __C declaration:__ @heif_vvic@
+
+    __defined at:__ @libheif\/heif_brands.h 368:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_vvic :: Heif_brand
+pattern Heif_vvic = Heif_brand 13
+
+{-| __C declaration:__ @heif_vvis@
+
+    __defined at:__ @libheif\/heif_brands.h 369:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_vvis :: Heif_brand
+pattern Heif_vvis = Heif_brand 14
+
+{-| __C declaration:__ @heif_evbi@
+
+    __defined at:__ @libheif\/heif_brands.h 370:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_evbi :: Heif_brand
+pattern Heif_evbi = Heif_brand 15
+
+{-| __C declaration:__ @heif_evbs@
+
+    __defined at:__ @libheif\/heif_brands.h 371:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_evbs :: Heif_brand
+pattern Heif_evbs = Heif_brand 16
+
+{-| __C declaration:__ @heif_j2ki@
+
+    __defined at:__ @libheif\/heif_brands.h 372:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_j2ki :: Heif_brand
+pattern Heif_j2ki = Heif_brand 17
+
+{-| __C declaration:__ @heif_j2is@
+
+    __defined at:__ @libheif\/heif_brands.h 373:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_j2is :: Heif_brand
+pattern Heif_j2is = Heif_brand 18
+
+{-| __C declaration:__ @enum heif_metadata_compression@
+
+    __defined at:__ @libheif\/heif_metadata.h 31:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_metadata_compression = Heif_metadata_compression
+  { unwrapHeif_metadata_compression :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_metadata_compression where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_metadata_compression where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_metadata_compression
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_metadata_compression where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_metadata_compression unwrapHeif_metadata_compression2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_metadata_compression2
+
+deriving via Marshal.EquivStorable Heif_metadata_compression instance BG.Storable Heif_metadata_compression
+
+deriving via BG.CUInt instance BG.Prim Heif_metadata_compression
+
+instance CEnum.CEnum Heif_metadata_compression where
+
+  type CEnumZ Heif_metadata_compression = BG.CUInt
+
+  toCEnum = Heif_metadata_compression
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_metadata_compression"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_metadata_compression_off")
+                                   , (1, BG.singleton "Heif_metadata_compression_auto")
+                                   , (2, BG.singleton "Heif_metadata_compression_unknown")
+                                   , (3, BG.singleton "Heif_metadata_compression_deflate")
+                                   , (4, BG.singleton "Heif_metadata_compression_zlib")
+                                   , (5, BG.singleton "Heif_metadata_compression_brotli")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_metadata_compression"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_metadata_compression"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_metadata_compression where
+
+  minDeclaredValue = Heif_metadata_compression_off
+
+  maxDeclaredValue = Heif_metadata_compression_brotli
+
+instance Show Heif_metadata_compression where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_metadata_compression where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_metadata_compression" Heif_metadata_compression ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_metadata_compression {unwrapHeif_metadata_compression = y1}
+      , BG.getField @"unwrapHeif_metadata_compression" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_metadata_compression" (BG.Ptr Heif_metadata_compression) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_metadata_compression")
+
+instance HasCField.HasCField Heif_metadata_compression "unwrapHeif_metadata_compression" where
+
+  type CFieldType Heif_metadata_compression "unwrapHeif_metadata_compression" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_metadata_compression_off@
+
+    __defined at:__ @libheif\/heif_metadata.h 33:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_off :: Heif_metadata_compression
+pattern Heif_metadata_compression_off = Heif_metadata_compression 0
+
+{-| __C declaration:__ @heif_metadata_compression_auto@
+
+    __defined at:__ @libheif\/heif_metadata.h 34:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_auto :: Heif_metadata_compression
+pattern Heif_metadata_compression_auto = Heif_metadata_compression 1
+
+{-| __C declaration:__ @heif_metadata_compression_unknown@
+
+    __defined at:__ @libheif\/heif_metadata.h 35:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_unknown :: Heif_metadata_compression
+pattern Heif_metadata_compression_unknown = Heif_metadata_compression 2
+
+{-| __C declaration:__ @heif_metadata_compression_deflate@
+
+    __defined at:__ @libheif\/heif_metadata.h 36:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_deflate :: Heif_metadata_compression
+pattern Heif_metadata_compression_deflate = Heif_metadata_compression 3
+
+{-| __C declaration:__ @heif_metadata_compression_zlib@
+
+    __defined at:__ @libheif\/heif_metadata.h 37:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_zlib :: Heif_metadata_compression
+pattern Heif_metadata_compression_zlib = Heif_metadata_compression 4
+
+{-| __C declaration:__ @heif_metadata_compression_brotli@
+
+    __defined at:__ @libheif\/heif_metadata.h 38:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_metadata_compression_brotli :: Heif_metadata_compression
+pattern Heif_metadata_compression_brotli = Heif_metadata_compression 5
+
+{-| __C declaration:__ @struct heif_encoder@
+
+    __defined at:__ @libheif\/heif_aux_images.h 32:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder
+
+{-| __C declaration:__ @enum heif_depth_representation_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_depth_representation_type = Heif_depth_representation_type
+  { unwrapHeif_depth_representation_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_depth_representation_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_depth_representation_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_depth_representation_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_depth_representation_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_depth_representation_type unwrapHeif_depth_representation_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_depth_representation_type2
+
+deriving via Marshal.EquivStorable Heif_depth_representation_type instance BG.Storable Heif_depth_representation_type
+
+deriving via BG.CUInt instance BG.Prim Heif_depth_representation_type
+
+instance CEnum.CEnum Heif_depth_representation_type where
+
+  type CEnumZ Heif_depth_representation_type = BG.CUInt
+
+  toCEnum = Heif_depth_representation_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_depth_representation_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_depth_representation_type_uniform_inverse_Z")
+                                   , (1, BG.singleton "Heif_depth_representation_type_uniform_disparity")
+                                   , (2, BG.singleton "Heif_depth_representation_type_uniform_Z")
+                                   , (3, BG.singleton "Heif_depth_representation_type_nonuniform_disparity")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_depth_representation_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_depth_representation_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_depth_representation_type where
+
+  minDeclaredValue =
+    Heif_depth_representation_type_uniform_inverse_Z
+
+  maxDeclaredValue =
+    Heif_depth_representation_type_nonuniform_disparity
+
+instance Show Heif_depth_representation_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_depth_representation_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_depth_representation_type" Heif_depth_representation_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_type {unwrapHeif_depth_representation_type = y1}
+      , BG.getField @"unwrapHeif_depth_representation_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_depth_representation_type" (BG.Ptr Heif_depth_representation_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_depth_representation_type")
+
+instance HasCField.HasCField Heif_depth_representation_type "unwrapHeif_depth_representation_type" where
+
+  type CFieldType Heif_depth_representation_type "unwrapHeif_depth_representation_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_depth_representation_type_uniform_inverse_Z@
+
+    __defined at:__ @libheif\/heif_aux_images.h 55:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_uniform_inverse_Z :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_uniform_inverse_Z = Heif_depth_representation_type 0
+
+{-| __C declaration:__ @heif_depth_representation_type_uniform_disparity@
+
+    __defined at:__ @libheif\/heif_aux_images.h 56:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_uniform_disparity :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_uniform_disparity = Heif_depth_representation_type 1
+
+{-| __C declaration:__ @heif_depth_representation_type_uniform_Z@
+
+    __defined at:__ @libheif\/heif_aux_images.h 57:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_uniform_Z :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_uniform_Z = Heif_depth_representation_type 2
+
+{-| __C declaration:__ @heif_depth_representation_type_nonuniform_disparity@
+
+    __defined at:__ @libheif\/heif_aux_images.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_depth_representation_type_nonuniform_disparity :: Heif_depth_representation_type
+pattern Heif_depth_representation_type_nonuniform_disparity = Heif_depth_representation_type 3
+
+{-| __C declaration:__ @struct heif_depth_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 61:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_depth_representation_info = Heif_depth_representation_info
+  { heif_depth_representation_info_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_aux_images.h 62:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_z_near :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_z_near@
+
+         __defined at:__ @libheif\/heif_aux_images.h 66:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_z_far :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_z_far@
+
+         __defined at:__ @libheif\/heif_aux_images.h 67:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_d_min :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_d_min@
+
+         __defined at:__ @libheif\/heif_aux_images.h 68:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_has_d_max :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @has_d_max@
+
+         __defined at:__ @libheif\/heif_aux_images.h 69:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_z_near :: BG.CDouble
+    {- ^ __C declaration:__ @z_near@
+
+         __defined at:__ @libheif\/heif_aux_images.h 71:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_z_far :: BG.CDouble
+    {- ^ __C declaration:__ @z_far@
+
+         __defined at:__ @libheif\/heif_aux_images.h 72:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_d_min :: BG.CDouble
+    {- ^ __C declaration:__ @d_min@
+
+         __defined at:__ @libheif\/heif_aux_images.h 73:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_d_max :: BG.CDouble
+    {- ^ __C declaration:__ @d_max@
+
+         __defined at:__ @libheif\/heif_aux_images.h 74:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_depth_representation_type :: Heif_depth_representation_type
+    {- ^ __C declaration:__ @depth_representation_type@
+
+         __defined at:__ @libheif\/heif_aux_images.h 76:39@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_disparity_reference_view :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @disparity_reference_view@
+
+         __defined at:__ @libheif\/heif_aux_images.h 77:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_depth_nonlinear_representation_model_size :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @depth_nonlinear_representation_model_size@
+
+         __defined at:__ @libheif\/heif_aux_images.h 79:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_depth_representation_info_depth_nonlinear_representation_model :: BG.Ptr HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @depth_nonlinear_representation_model@
+
+         __defined at:__ @libheif\/heif_aux_images.h 80:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_depth_representation_info where
+
+  staticSizeOf = \_ -> (56 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_depth_representation_info where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_depth_representation_info
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_z_near") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_z_far") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_d_min") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_has_d_max") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_z_near") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_z_far") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_d_min") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_d_max") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_depth_representation_type") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_disparity_reference_view") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model") ptr0
+
+instance Marshal.WriteRaw Heif_depth_representation_info where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_depth_representation_info
+            heif_depth_representation_info_version2
+            heif_depth_representation_info_has_z_near3
+            heif_depth_representation_info_has_z_far4
+            heif_depth_representation_info_has_d_min5
+            heif_depth_representation_info_has_d_max6
+            heif_depth_representation_info_z_near7
+            heif_depth_representation_info_z_far8
+            heif_depth_representation_info_d_min9
+            heif_depth_representation_info_d_max10
+            heif_depth_representation_info_depth_representation_type11
+            heif_depth_representation_info_disparity_reference_view12
+            heif_depth_representation_info_depth_nonlinear_representation_model_size13
+            heif_depth_representation_info_depth_nonlinear_representation_model14 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_version") ptr0 heif_depth_representation_info_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_z_near") ptr0 heif_depth_representation_info_has_z_near3
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_z_far") ptr0 heif_depth_representation_info_has_z_far4
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_d_min") ptr0 heif_depth_representation_info_has_d_min5
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_has_d_max") ptr0 heif_depth_representation_info_has_d_max6
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_z_near") ptr0 heif_depth_representation_info_z_near7
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_z_far") ptr0 heif_depth_representation_info_z_far8
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_d_min") ptr0 heif_depth_representation_info_d_min9
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_d_max") ptr0 heif_depth_representation_info_d_max10
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_depth_representation_type") ptr0 heif_depth_representation_info_depth_representation_type11
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_disparity_reference_view") ptr0 heif_depth_representation_info_disparity_reference_view12
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model_size") ptr0 heif_depth_representation_info_depth_nonlinear_representation_model_size13
+              >> HasCField.writeRaw (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model") ptr0 heif_depth_representation_info_depth_nonlinear_representation_model14
+
+deriving via Marshal.EquivStorable Heif_depth_representation_info instance BG.Storable Heif_depth_representation_info
+
+deriving via Struct.IsStructViaReadRaw Heif_depth_representation_info instance Struct.IsStruct Heif_depth_representation_info
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_aux_images.h 62:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_version" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_version = y1
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_version" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_version")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_version" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @has_z_near@
+
+    __defined at:__ @libheif\/heif_aux_images.h 66:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_z_near" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_z_near = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_z_near" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_z_near" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_z_near")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_z_near" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_z_near" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 1
+
+{-| __C declaration:__ @has_z_far@
+
+    __defined at:__ @libheif\/heif_aux_images.h 67:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_z_far" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_z_far = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_z_far" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_z_far" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_z_far")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_z_far" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_z_far" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 2
+
+{-| __C declaration:__ @has_d_min@
+
+    __defined at:__ @libheif\/heif_aux_images.h 68:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_d_min" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_d_min = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_d_min" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_d_min" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_d_min")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_d_min" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_d_min" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 3
+
+{-| __C declaration:__ @has_d_max@
+
+    __defined at:__ @libheif\/heif_aux_images.h 69:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_has_d_max" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_has_d_max = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_has_d_max" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_has_d_max" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_has_d_max")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_has_d_max" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_has_d_max" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @z_near@
+
+    __defined at:__ @libheif\/heif_aux_images.h 71:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_z_near" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_z_near = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_z_near" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_z_near" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_z_near")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_z_near" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_z_near" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @z_far@
+
+    __defined at:__ @libheif\/heif_aux_images.h 72:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_z_far" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_z_far = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_z_far" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_z_far" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_z_far")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_z_far" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_z_far" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @d_min@
+
+    __defined at:__ @libheif\/heif_aux_images.h 73:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_d_min" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_d_min = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_d_min" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_d_min" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_d_min")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_d_min" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_d_min" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @d_max@
+
+    __defined at:__ @libheif\/heif_aux_images.h 74:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_d_max" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_d_max = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_d_max" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_depth_representation_info_d_max" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_d_max")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_d_max" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_d_max" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @depth_representation_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 76:39@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_depth_representation_type
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_depth_representation_type" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_depth_representation_type = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+      )
+
+instance ( ty ~ Heif_depth_representation_type
+         ) => BG.HasField "heif_depth_representation_info_depth_representation_type" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_depth_representation_type")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_depth_representation_type" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_depth_representation_type" =
+    Heif_depth_representation_type
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @disparity_reference_view@
+
+    __defined at:__ @libheif\/heif_aux_images.h 77:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_disparity_reference_view" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_disparity_reference_view = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_depth_representation_info_disparity_reference_view" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_disparity_reference_view")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_disparity_reference_view" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_disparity_reference_view" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 44
+
+{-| __C declaration:__ @depth_nonlinear_representation_model_size@
+
+    __defined at:__ @libheif\/heif_aux_images.h 79:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_depth_nonlinear_representation_model_size" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_depth_nonlinear_representation_model_size = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_depth_representation_info_depth_nonlinear_representation_model_size" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model_size")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model_size" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model_size" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @depth_nonlinear_representation_model@
+
+    __defined at:__ @libheif\/heif_aux_images.h 80:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_depth_representation_info_depth_nonlinear_representation_model" Heif_depth_representation_info ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_depth_representation_info { heif_depth_representation_info_depth_nonlinear_representation_model = y1
+                                         , heif_depth_representation_info_version = BG.getField @"heif_depth_representation_info_version" x0
+                                         , heif_depth_representation_info_has_z_near = BG.getField @"heif_depth_representation_info_has_z_near" x0
+                                         , heif_depth_representation_info_has_z_far = BG.getField @"heif_depth_representation_info_has_z_far" x0
+                                         , heif_depth_representation_info_has_d_min = BG.getField @"heif_depth_representation_info_has_d_min" x0
+                                         , heif_depth_representation_info_has_d_max = BG.getField @"heif_depth_representation_info_has_d_max" x0
+                                         , heif_depth_representation_info_z_near = BG.getField @"heif_depth_representation_info_z_near" x0
+                                         , heif_depth_representation_info_z_far = BG.getField @"heif_depth_representation_info_z_far" x0
+                                         , heif_depth_representation_info_d_min = BG.getField @"heif_depth_representation_info_d_min" x0
+                                         , heif_depth_representation_info_d_max = BG.getField @"heif_depth_representation_info_d_max" x0
+                                         , heif_depth_representation_info_depth_representation_type = BG.getField @"heif_depth_representation_info_depth_representation_type" x0
+                                         , heif_depth_representation_info_disparity_reference_view = BG.getField @"heif_depth_representation_info_disparity_reference_view" x0
+                                         , heif_depth_representation_info_depth_nonlinear_representation_model_size = BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model_size" x0
+                                         }
+      , BG.getField @"heif_depth_representation_info_depth_nonlinear_representation_model" x0
+      )
+
+instance ( ty ~ BG.Ptr HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_depth_representation_info_depth_nonlinear_representation_model" (BG.Ptr Heif_depth_representation_info) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_depth_representation_info_depth_nonlinear_representation_model")
+
+instance HasCField.HasCField Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model" where
+
+  type CFieldType Heif_depth_representation_info "heif_depth_representation_info_depth_nonlinear_representation_model" =
+    BG.Ptr HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 52
+
+{-| __C declaration:__ @macro LIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA@
+
+    __defined at:__ @libheif\/heif_aux_images.h 143:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA :: BG.CULong
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA =
+  (C.Expr.HostPlatform.<<) (1 :: BG.CULong) (1 :: BG.CInt)
+
+{-| __C declaration:__ @macro LIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH@
+
+    __defined at:__ @libheif\/heif_aux_images.h 144:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH :: BG.CULong
+lIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH =
+  (C.Expr.HostPlatform.<<) (2 :: BG.CULong) (1 :: BG.CInt)
+
+{-| __C declaration:__ @heif_entity_group_id@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 33:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_entity_group_id = Heif_entity_group_id
+  { unwrapHeif_entity_group_id :: HsBindgen.Runtime.LibC.Word32
+  }
+  deriving stock (Eq, BG.Generic, Ord, Read, Show)
+  deriving newtype
+    ( BG.Bitfield
+    , BG.Bits
+    , Bounded
+    , Enum
+    , BG.FiniteBits
+    , BG.HasFFIType
+    , Integral
+    , BG.Ix
+    , Num
+    , BG.Prim
+    , Marshal.ReadRaw
+    , Real
+    , Marshal.StaticSize
+    , BG.Storable
+    , Marshal.WriteRaw
+    )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "unwrapHeif_entity_group_id" Heif_entity_group_id ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group_id {unwrapHeif_entity_group_id = y1}
+      , BG.getField @"unwrapHeif_entity_group_id" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "unwrapHeif_entity_group_id" (BG.Ptr Heif_entity_group_id) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_entity_group_id")
+
+instance HasCField.HasCField Heif_entity_group_id "unwrapHeif_entity_group_id" where
+
+  type CFieldType Heif_entity_group_id "unwrapHeif_entity_group_id" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @struct heif_entity_group@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 35:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_entity_group = Heif_entity_group
+  { heif_entity_group_entity_group_id :: Heif_entity_group_id
+    {- ^ __C declaration:__ @entity_group_id@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 37:24@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_entity_group_entity_group_type :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @entity_group_type@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 38:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_entity_group_entities :: BG.Ptr Heif_item_id
+    {- ^ __C declaration:__ @entities@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 39:17@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_entity_group_num_entities :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @num_entities@
+
+         __defined at:__ @libheif\/heif_entity_groups.h 40:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_entity_group where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_entity_group where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_entity_group
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_entity_group_id") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_entity_group_type") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_entities") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_entity_group_num_entities") ptr0
+
+instance Marshal.WriteRaw Heif_entity_group where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_entity_group
+            heif_entity_group_entity_group_id2
+            heif_entity_group_entity_group_type3
+            heif_entity_group_entities4
+            heif_entity_group_num_entities5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_entity_group_entity_group_id") ptr0 heif_entity_group_entity_group_id2
+              >> HasCField.writeRaw (BG.Proxy @"heif_entity_group_entity_group_type") ptr0 heif_entity_group_entity_group_type3
+              >> HasCField.writeRaw (BG.Proxy @"heif_entity_group_entities") ptr0 heif_entity_group_entities4
+              >> HasCField.writeRaw (BG.Proxy @"heif_entity_group_num_entities") ptr0 heif_entity_group_num_entities5
+
+deriving via Marshal.EquivStorable Heif_entity_group instance BG.Storable Heif_entity_group
+
+deriving via Struct.IsStructViaReadRaw Heif_entity_group instance Struct.IsStruct Heif_entity_group
+
+{-| __C declaration:__ @entity_group_id@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 37:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_entity_group_id
+         ) => BG.CompatHasField.HasField "heif_entity_group_entity_group_id" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_entity_group_id = y1
+                            , heif_entity_group_entity_group_type = BG.getField @"heif_entity_group_entity_group_type" x0
+                            , heif_entity_group_entities = BG.getField @"heif_entity_group_entities" x0
+                            , heif_entity_group_num_entities = BG.getField @"heif_entity_group_num_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_entity_group_id" x0
+      )
+
+instance ( ty ~ Heif_entity_group_id
+         ) => BG.HasField "heif_entity_group_entity_group_id" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_entity_group_id")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_entity_group_id" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_entity_group_id" =
+    Heif_entity_group_id
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @entity_group_type@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 38:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_entity_group_entity_group_type" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_entity_group_type = y1
+                            , heif_entity_group_entity_group_id = BG.getField @"heif_entity_group_entity_group_id" x0
+                            , heif_entity_group_entities = BG.getField @"heif_entity_group_entities" x0
+                            , heif_entity_group_num_entities = BG.getField @"heif_entity_group_num_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_entity_group_type" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_entity_group_entity_group_type" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_entity_group_type")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_entity_group_type" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_entity_group_type" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @entities@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 39:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_item_id
+         ) => BG.CompatHasField.HasField "heif_entity_group_entities" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_entities = y1
+                            , heif_entity_group_entity_group_id = BG.getField @"heif_entity_group_entity_group_id" x0
+                            , heif_entity_group_entity_group_type = BG.getField @"heif_entity_group_entity_group_type" x0
+                            , heif_entity_group_num_entities = BG.getField @"heif_entity_group_num_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_entities" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_item_id
+         ) => BG.HasField "heif_entity_group_entities" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_entities")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_entities" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_entities" =
+    BG.Ptr Heif_item_id
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @num_entities@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 40:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_entity_group_num_entities" Heif_entity_group ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_entity_group { heif_entity_group_num_entities = y1
+                            , heif_entity_group_entity_group_id = BG.getField @"heif_entity_group_entity_group_id" x0
+                            , heif_entity_group_entity_group_type = BG.getField @"heif_entity_group_entity_group_type" x0
+                            , heif_entity_group_entities = BG.getField @"heif_entity_group_entities" x0
+                            }
+      , BG.getField @"heif_entity_group_num_entities" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_entity_group_num_entities" (BG.Ptr Heif_entity_group) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_entity_group_num_entities")
+
+instance HasCField.HasCField Heif_entity_group "heif_entity_group_num_entities" where
+
+  type CFieldType Heif_entity_group "heif_entity_group_num_entities" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @struct heif_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 37:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_security_limits = Heif_security_limits
+  { heif_security_limits_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_security.h 39:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_image_size_pixels :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_image_size_pixels@
+
+         __defined at:__ @libheif\/heif_security.h 46:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_number_of_tiles :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_number_of_tiles@
+
+         __defined at:__ @libheif\/heif_security.h 47:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_bayer_pattern_pixels :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_bayer_pattern_pixels@
+
+         __defined at:__ @libheif\/heif_security.h 49:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_items :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_items@
+
+         __defined at:__ @libheif\/heif_security.h 50:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_color_profile_size :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_color_profile_size@
+
+         __defined at:__ @libheif\/heif_security.h 52:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_memory_block_size :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_memory_block_size@
+
+         __defined at:__ @libheif\/heif_security.h 53:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_components :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_components@
+
+         __defined at:__ @libheif\/heif_security.h 55:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_iloc_extents_per_item :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_iloc_extents_per_item@
+
+         __defined at:__ @libheif\/heif_security.h 57:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_size_entity_group :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_size_entity_group@
+
+         __defined at:__ @libheif\/heif_security.h 58:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_children_per_box :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_children_per_box@
+
+         __defined at:__ @libheif\/heif_security.h 60:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_total_memory :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @max_total_memory@
+
+         __defined at:__ @libheif\/heif_security.h 64:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_sample_description_box_entries :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_sample_description_box_entries@
+
+         __defined at:__ @libheif\/heif_security.h 65:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_sample_group_description_box_entries :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_sample_group_description_box_entries@
+
+         __defined at:__ @libheif\/heif_security.h 66:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_sequence_frames :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_sequence_frames@
+
+         __defined at:__ @libheif\/heif_security.h 70:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_number_of_file_brands :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_number_of_file_brands@
+
+         __defined at:__ @libheif\/heif_security.h 71:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_bad_pixels :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_bad_pixels@
+
+         __defined at:__ @libheif\/heif_security.h 75:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_max_iso23001_17_pixel_size_bytes :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @max_iso23001_17_pixel_size_bytes@
+
+         __defined at:__ @libheif\/heif_security.h 80:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_security_limits_parent :: PtrConst.PtrConst Heif_security_limits
+    {- ^ __C declaration:__ @parent@
+
+         __defined at:__ @libheif\/heif_security.h 87:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_security_limits where
+
+  staticSizeOf = \_ -> (104 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_security_limits where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_security_limits
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_image_size_pixels") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_number_of_tiles") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_bayer_pattern_pixels") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_items") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_color_profile_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_memory_block_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_components") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_iloc_extents_per_item") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_size_entity_group") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_children_per_box") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_total_memory") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_sample_description_box_entries") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_sample_group_description_box_entries") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_sequence_frames") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_number_of_file_brands") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_bad_pixels") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_max_iso23001_17_pixel_size_bytes") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_security_limits_parent") ptr0
+
+instance Marshal.WriteRaw Heif_security_limits where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_security_limits
+            heif_security_limits_version2
+            heif_security_limits_max_image_size_pixels3
+            heif_security_limits_max_number_of_tiles4
+            heif_security_limits_max_bayer_pattern_pixels5
+            heif_security_limits_max_items6
+            heif_security_limits_max_color_profile_size7
+            heif_security_limits_max_memory_block_size8
+            heif_security_limits_max_components9
+            heif_security_limits_max_iloc_extents_per_item10
+            heif_security_limits_max_size_entity_group11
+            heif_security_limits_max_children_per_box12
+            heif_security_limits_max_total_memory13
+            heif_security_limits_max_sample_description_box_entries14
+            heif_security_limits_max_sample_group_description_box_entries15
+            heif_security_limits_max_sequence_frames16
+            heif_security_limits_max_number_of_file_brands17
+            heif_security_limits_max_bad_pixels18
+            heif_security_limits_max_iso23001_17_pixel_size_bytes19
+            heif_security_limits_parent20 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_security_limits_version") ptr0 heif_security_limits_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_image_size_pixels") ptr0 heif_security_limits_max_image_size_pixels3
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_number_of_tiles") ptr0 heif_security_limits_max_number_of_tiles4
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_bayer_pattern_pixels") ptr0 heif_security_limits_max_bayer_pattern_pixels5
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_items") ptr0 heif_security_limits_max_items6
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_color_profile_size") ptr0 heif_security_limits_max_color_profile_size7
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_memory_block_size") ptr0 heif_security_limits_max_memory_block_size8
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_components") ptr0 heif_security_limits_max_components9
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_iloc_extents_per_item") ptr0 heif_security_limits_max_iloc_extents_per_item10
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_size_entity_group") ptr0 heif_security_limits_max_size_entity_group11
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_children_per_box") ptr0 heif_security_limits_max_children_per_box12
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_total_memory") ptr0 heif_security_limits_max_total_memory13
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_sample_description_box_entries") ptr0 heif_security_limits_max_sample_description_box_entries14
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_sample_group_description_box_entries") ptr0 heif_security_limits_max_sample_group_description_box_entries15
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_sequence_frames") ptr0 heif_security_limits_max_sequence_frames16
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_number_of_file_brands") ptr0 heif_security_limits_max_number_of_file_brands17
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_bad_pixels") ptr0 heif_security_limits_max_bad_pixels18
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_max_iso23001_17_pixel_size_bytes") ptr0 heif_security_limits_max_iso23001_17_pixel_size_bytes19
+              >> HasCField.writeRaw (BG.Proxy @"heif_security_limits_parent") ptr0 heif_security_limits_parent20
+
+deriving via Marshal.EquivStorable Heif_security_limits instance BG.Storable Heif_security_limits
+
+deriving via Struct.IsStructViaReadRaw Heif_security_limits instance Struct.IsStruct Heif_security_limits
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_security.h 39:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_security_limits_version" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_version = y1
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_security_limits_version" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_version")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_version" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @max_image_size_pixels@
+
+    __defined at:__ @libheif\/heif_security.h 46:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_image_size_pixels" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_image_size_pixels = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_image_size_pixels" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_image_size_pixels" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_image_size_pixels")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_image_size_pixels" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_image_size_pixels" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @max_number_of_tiles@
+
+    __defined at:__ @libheif\/heif_security.h 47:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_number_of_tiles" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_number_of_tiles = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_number_of_tiles" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_number_of_tiles" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_number_of_tiles")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_number_of_tiles" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_number_of_tiles" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @max_bayer_pattern_pixels@
+
+    __defined at:__ @libheif\/heif_security.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_bayer_pattern_pixels" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_bayer_pattern_pixels = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_bayer_pattern_pixels" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_bayer_pattern_pixels")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_bayer_pattern_pixels" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_bayer_pattern_pixels" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @max_items@
+
+    __defined at:__ @libheif\/heif_security.h 50:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_items" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_items = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_items" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_items" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_items")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_items" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_items" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @max_color_profile_size@
+
+    __defined at:__ @libheif\/heif_security.h 52:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_color_profile_size" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_color_profile_size = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_color_profile_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_color_profile_size" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_color_profile_size")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_color_profile_size" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_color_profile_size" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @max_memory_block_size@
+
+    __defined at:__ @libheif\/heif_security.h 53:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_memory_block_size" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_memory_block_size = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_memory_block_size" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_memory_block_size" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_memory_block_size")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_memory_block_size" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_memory_block_size" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @max_components@
+
+    __defined at:__ @libheif\/heif_security.h 55:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_components" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_components = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_components" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_components" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_components")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_components" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_components" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @max_iloc_extents_per_item@
+
+    __defined at:__ @libheif\/heif_security.h 57:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_iloc_extents_per_item" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_iloc_extents_per_item = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_iloc_extents_per_item" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_iloc_extents_per_item")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_iloc_extents_per_item" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_iloc_extents_per_item" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 52
+
+{-| __C declaration:__ @max_size_entity_group@
+
+    __defined at:__ @libheif\/heif_security.h 58:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_size_entity_group" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_size_entity_group = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_size_entity_group" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_size_entity_group" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_size_entity_group")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_size_entity_group" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_size_entity_group" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 56
+
+{-| __C declaration:__ @max_children_per_box@
+
+    __defined at:__ @libheif\/heif_security.h 60:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_children_per_box" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_children_per_box = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_children_per_box" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_children_per_box" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_children_per_box")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_children_per_box" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_children_per_box" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 60
+
+{-| __C declaration:__ @max_total_memory@
+
+    __defined at:__ @libheif\/heif_security.h 64:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_total_memory" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_total_memory = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_total_memory" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_security_limits_max_total_memory" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_total_memory")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_total_memory" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_total_memory" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 64
+
+{-| __C declaration:__ @max_sample_description_box_entries@
+
+    __defined at:__ @libheif\/heif_security.h 65:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_sample_description_box_entries" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_sample_description_box_entries = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_sample_description_box_entries" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_sample_description_box_entries")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_sample_description_box_entries" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_sample_description_box_entries" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 72
+
+{-| __C declaration:__ @max_sample_group_description_box_entries@
+
+    __defined at:__ @libheif\/heif_security.h 66:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_sample_group_description_box_entries" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_sample_group_description_box_entries = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_sample_group_description_box_entries" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_sample_group_description_box_entries")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_sample_group_description_box_entries" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_sample_group_description_box_entries" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 76
+
+{-| __C declaration:__ @max_sequence_frames@
+
+    __defined at:__ @libheif\/heif_security.h 70:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_sequence_frames" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_sequence_frames = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_sequence_frames" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_sequence_frames" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_sequence_frames")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_sequence_frames" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_sequence_frames" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 80
+
+{-| __C declaration:__ @max_number_of_file_brands@
+
+    __defined at:__ @libheif\/heif_security.h 71:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_number_of_file_brands" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_number_of_file_brands = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_number_of_file_brands" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_number_of_file_brands")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_number_of_file_brands" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_number_of_file_brands" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 84
+
+{-| __C declaration:__ @max_bad_pixels@
+
+    __defined at:__ @libheif\/heif_security.h 75:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_bad_pixels" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_bad_pixels = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_bad_pixels" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_bad_pixels" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_bad_pixels")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_bad_pixels" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_bad_pixels" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 88
+
+{-| __C declaration:__ @max_iso23001_17_pixel_size_bytes@
+
+    __defined at:__ @libheif\/heif_security.h 80:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_security_limits_max_iso23001_17_pixel_size_bytes" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_max_iso23001_17_pixel_size_bytes = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_parent = BG.getField @"heif_security_limits_parent" x0
+                               }
+      , BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_security_limits_max_iso23001_17_pixel_size_bytes" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_max_iso23001_17_pixel_size_bytes")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_max_iso23001_17_pixel_size_bytes" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_max_iso23001_17_pixel_size_bytes" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 92
+
+{-| __C declaration:__ @parent@
+
+    __defined at:__ @libheif\/heif_security.h 87:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst Heif_security_limits
+         ) => BG.CompatHasField.HasField "heif_security_limits_parent" Heif_security_limits ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_security_limits { heif_security_limits_parent = y1
+                               , heif_security_limits_version = BG.getField @"heif_security_limits_version" x0
+                               , heif_security_limits_max_image_size_pixels = BG.getField @"heif_security_limits_max_image_size_pixels" x0
+                               , heif_security_limits_max_number_of_tiles = BG.getField @"heif_security_limits_max_number_of_tiles" x0
+                               , heif_security_limits_max_bayer_pattern_pixels = BG.getField @"heif_security_limits_max_bayer_pattern_pixels" x0
+                               , heif_security_limits_max_items = BG.getField @"heif_security_limits_max_items" x0
+                               , heif_security_limits_max_color_profile_size = BG.getField @"heif_security_limits_max_color_profile_size" x0
+                               , heif_security_limits_max_memory_block_size = BG.getField @"heif_security_limits_max_memory_block_size" x0
+                               , heif_security_limits_max_components = BG.getField @"heif_security_limits_max_components" x0
+                               , heif_security_limits_max_iloc_extents_per_item = BG.getField @"heif_security_limits_max_iloc_extents_per_item" x0
+                               , heif_security_limits_max_size_entity_group = BG.getField @"heif_security_limits_max_size_entity_group" x0
+                               , heif_security_limits_max_children_per_box = BG.getField @"heif_security_limits_max_children_per_box" x0
+                               , heif_security_limits_max_total_memory = BG.getField @"heif_security_limits_max_total_memory" x0
+                               , heif_security_limits_max_sample_description_box_entries = BG.getField @"heif_security_limits_max_sample_description_box_entries" x0
+                               , heif_security_limits_max_sample_group_description_box_entries = BG.getField @"heif_security_limits_max_sample_group_description_box_entries" x0
+                               , heif_security_limits_max_sequence_frames = BG.getField @"heif_security_limits_max_sequence_frames" x0
+                               , heif_security_limits_max_number_of_file_brands = BG.getField @"heif_security_limits_max_number_of_file_brands" x0
+                               , heif_security_limits_max_bad_pixels = BG.getField @"heif_security_limits_max_bad_pixels" x0
+                               , heif_security_limits_max_iso23001_17_pixel_size_bytes = BG.getField @"heif_security_limits_max_iso23001_17_pixel_size_bytes" x0
+                               }
+      , BG.getField @"heif_security_limits_parent" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst Heif_security_limits
+         ) => BG.HasField "heif_security_limits_parent" (BG.Ptr Heif_security_limits) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_security_limits_parent")
+
+instance HasCField.HasCField Heif_security_limits "heif_security_limits_parent" where
+
+  type CFieldType Heif_security_limits "heif_security_limits_parent" =
+    PtrConst.PtrConst Heif_security_limits
+
+  offset# = \_ -> \_ -> 96
+
+{-| __C declaration:__ @enum heif_compression_format@
+
+    __defined at:__ @libheif\/heif_context.h 38:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_compression_format = Heif_compression_format
+  { unwrapHeif_compression_format :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_compression_format where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_compression_format where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_compression_format
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_compression_format where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_compression_format unwrapHeif_compression_format2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_compression_format2
+
+deriving via Marshal.EquivStorable Heif_compression_format instance BG.Storable Heif_compression_format
+
+deriving via BG.CUInt instance BG.Prim Heif_compression_format
+
+instance CEnum.CEnum Heif_compression_format where
+
+  type CEnumZ Heif_compression_format = BG.CUInt
+
+  toCEnum = Heif_compression_format
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_compression_format"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_compression_undefined")
+                                   , (1, BG.singleton "Heif_compression_HEVC")
+                                   , (2, BG.singleton "Heif_compression_AVC")
+                                   , (3, BG.singleton "Heif_compression_JPEG")
+                                   , (4, BG.singleton "Heif_compression_AV1")
+                                   , (5, BG.singleton "Heif_compression_VVC")
+                                   , (6, BG.singleton "Heif_compression_EVC")
+                                   , (7, BG.singleton "Heif_compression_JPEG2000")
+                                   , (8, BG.singleton "Heif_compression_uncompressed")
+                                   , (9, BG.singleton "Heif_compression_mask")
+                                   , (10, BG.singleton "Heif_compression_HTJ2K")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_compression_format"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_compression_format"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_compression_format where
+
+  minDeclaredValue = Heif_compression_undefined
+
+  maxDeclaredValue = Heif_compression_HTJ2K
+
+instance Show Heif_compression_format where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_compression_format where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_compression_format" Heif_compression_format ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_compression_format {unwrapHeif_compression_format = y1}
+      , BG.getField @"unwrapHeif_compression_format" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_compression_format" (BG.Ptr Heif_compression_format) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_compression_format")
+
+instance HasCField.HasCField Heif_compression_format "unwrapHeif_compression_format" where
+
+  type CFieldType Heif_compression_format "unwrapHeif_compression_format" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_compression_undefined@
+
+    __defined at:__ @libheif\/heif_context.h 46:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_undefined :: Heif_compression_format
+pattern Heif_compression_undefined = Heif_compression_format 0
+
+{-| __C declaration:__ @heif_compression_HEVC@
+
+    __defined at:__ @libheif\/heif_context.h 52:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_HEVC :: Heif_compression_format
+pattern Heif_compression_HEVC = Heif_compression_format 1
+
+{-| __C declaration:__ @heif_compression_AVC@
+
+    __defined at:__ @libheif\/heif_context.h 60:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_AVC :: Heif_compression_format
+pattern Heif_compression_AVC = Heif_compression_format 2
+
+{-| __C declaration:__ @heif_compression_JPEG@
+
+    __defined at:__ @libheif\/heif_context.h 67:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_JPEG :: Heif_compression_format
+pattern Heif_compression_JPEG = Heif_compression_format 3
+
+{-| __C declaration:__ @heif_compression_AV1@
+
+    __defined at:__ @libheif\/heif_context.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_AV1 :: Heif_compression_format
+pattern Heif_compression_AV1 = Heif_compression_format 4
+
+{-| __C declaration:__ @heif_compression_VVC@
+
+    __defined at:__ @libheif\/heif_context.h 83:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_VVC :: Heif_compression_format
+pattern Heif_compression_VVC = Heif_compression_format 5
+
+{-| __C declaration:__ @heif_compression_EVC@
+
+    __defined at:__ @libheif\/heif_context.h 91:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_EVC :: Heif_compression_format
+pattern Heif_compression_EVC = Heif_compression_format 6
+
+{-| __C declaration:__ @heif_compression_JPEG2000@
+
+    __defined at:__ @libheif\/heif_context.h 98:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_JPEG2000 :: Heif_compression_format
+pattern Heif_compression_JPEG2000 = Heif_compression_format 7
+
+{-| __C declaration:__ @heif_compression_uncompressed@
+
+    __defined at:__ @libheif\/heif_context.h 104:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_uncompressed :: Heif_compression_format
+pattern Heif_compression_uncompressed = Heif_compression_format 8
+
+{-| __C declaration:__ @heif_compression_mask@
+
+    __defined at:__ @libheif\/heif_context.h 110:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_mask :: Heif_compression_format
+pattern Heif_compression_mask = Heif_compression_format 9
+
+{-| __C declaration:__ @heif_compression_HTJ2K@
+
+    __defined at:__ @libheif\/heif_context.h 117:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_compression_HTJ2K :: Heif_compression_format
+pattern Heif_compression_HTJ2K = Heif_compression_format 10
+
+{-| __C declaration:__ @struct heif_reading_options@
+
+    __defined at:__ @libheif\/heif_context.h 137:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_reading_options
+
+{-| __C declaration:__ @enum heif_reader_grow_status@
+
+    __defined at:__ @libheif\/heif_context.h 139:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_reader_grow_status = Heif_reader_grow_status
+  { unwrapHeif_reader_grow_status :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_reader_grow_status where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_reader_grow_status where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_reader_grow_status
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_reader_grow_status where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_reader_grow_status unwrapHeif_reader_grow_status2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_reader_grow_status2
+
+deriving via Marshal.EquivStorable Heif_reader_grow_status instance BG.Storable Heif_reader_grow_status
+
+deriving via BG.CUInt instance BG.Prim Heif_reader_grow_status
+
+instance CEnum.CEnum Heif_reader_grow_status where
+
+  type CEnumZ Heif_reader_grow_status = BG.CUInt
+
+  toCEnum = Heif_reader_grow_status
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_reader_grow_status"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_reader_grow_status_size_reached")
+                                   , (1, BG.singleton "Heif_reader_grow_status_timeout")
+                                   , (2, BG.singleton "Heif_reader_grow_status_size_beyond_eof")
+                                   , (3, BG.singleton "Heif_reader_grow_status_error")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_reader_grow_status"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_reader_grow_status"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_reader_grow_status where
+
+  minDeclaredValue =
+    Heif_reader_grow_status_size_reached
+
+  maxDeclaredValue = Heif_reader_grow_status_error
+
+instance Show Heif_reader_grow_status where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_reader_grow_status where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_reader_grow_status" Heif_reader_grow_status ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_grow_status {unwrapHeif_reader_grow_status = y1}
+      , BG.getField @"unwrapHeif_reader_grow_status" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_reader_grow_status" (BG.Ptr Heif_reader_grow_status) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_reader_grow_status")
+
+instance HasCField.HasCField Heif_reader_grow_status "unwrapHeif_reader_grow_status" where
+
+  type CFieldType Heif_reader_grow_status "unwrapHeif_reader_grow_status" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_reader_grow_status_size_reached@
+
+    __defined at:__ @libheif\/heif_context.h 141:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_size_reached :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_size_reached = Heif_reader_grow_status 0
+
+{-| __C declaration:__ @heif_reader_grow_status_timeout@
+
+    __defined at:__ @libheif\/heif_context.h 142:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_timeout :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_timeout = Heif_reader_grow_status 1
+
+{-| __C declaration:__ @heif_reader_grow_status_size_beyond_eof@
+
+    __defined at:__ @libheif\/heif_context.h 143:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_size_beyond_eof :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_size_beyond_eof = Heif_reader_grow_status 2
+
+{-| __C declaration:__ @heif_reader_grow_status_error@
+
+    __defined at:__ @libheif\/heif_context.h 144:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_reader_grow_status_error :: Heif_reader_grow_status
+pattern Heif_reader_grow_status_error = Heif_reader_grow_status 3
+
+{-| __C declaration:__ @struct heif_reader_range_request_result@
+
+    __defined at:__ @libheif\/heif_context.h 148:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_reader_range_request_result = Heif_reader_range_request_result
+  { heif_reader_range_request_result_status :: Heif_reader_grow_status
+    {- ^ __C declaration:__ @status@
+
+         __defined at:__ @libheif\/heif_context.h 150:32@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_range_request_result_range_end :: HsBindgen.Runtime.LibC.Word64
+    {- ^ __C declaration:__ @range_end@
+
+         __defined at:__ @libheif\/heif_context.h 156:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_range_request_result_reader_error_code :: BG.CInt
+    {- ^ __C declaration:__ @reader_error_code@
+
+         __defined at:__ @libheif\/heif_context.h 159:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_range_request_result_reader_error_msg :: PtrConst.PtrConst BG.CChar
+    {- ^ __C declaration:__ @reader_error_msg@
+
+         __defined at:__ @libheif\/heif_context.h 160:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_reader_range_request_result where
+
+  staticSizeOf = \_ -> (24 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_reader_range_request_result where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_reader_range_request_result
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_status") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_range_end") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_code") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_msg") ptr0
+
+instance Marshal.WriteRaw Heif_reader_range_request_result where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_reader_range_request_result
+            heif_reader_range_request_result_status2
+            heif_reader_range_request_result_range_end3
+            heif_reader_range_request_result_reader_error_code4
+            heif_reader_range_request_result_reader_error_msg5 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_status") ptr0 heif_reader_range_request_result_status2
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_range_end") ptr0 heif_reader_range_request_result_range_end3
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_code") ptr0 heif_reader_range_request_result_reader_error_code4
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_range_request_result_reader_error_msg") ptr0 heif_reader_range_request_result_reader_error_msg5
+
+deriving via Marshal.EquivStorable Heif_reader_range_request_result instance BG.Storable Heif_reader_range_request_result
+
+deriving via Struct.IsStructViaReadRaw Heif_reader_range_request_result instance Struct.IsStruct Heif_reader_range_request_result
+
+{-| __C declaration:__ @status@
+
+    __defined at:__ @libheif\/heif_context.h 150:32@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_reader_grow_status
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_status" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_status = y1
+                                           , heif_reader_range_request_result_range_end = BG.getField @"heif_reader_range_request_result_range_end" x0
+                                           , heif_reader_range_request_result_reader_error_code = BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+                                           , heif_reader_range_request_result_reader_error_msg = BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_status" x0
+      )
+
+instance ( ty ~ Heif_reader_grow_status
+         ) => BG.HasField "heif_reader_range_request_result_status" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_status")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_status" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_status" =
+    Heif_reader_grow_status
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @range_end@
+
+    __defined at:__ @libheif\/heif_context.h 156:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_range_end" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_range_end = y1
+                                           , heif_reader_range_request_result_status = BG.getField @"heif_reader_range_request_result_status" x0
+                                           , heif_reader_range_request_result_reader_error_code = BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+                                           , heif_reader_range_request_result_reader_error_msg = BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_range_end" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word64
+         ) => BG.HasField "heif_reader_range_request_result_range_end" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_range_end")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_range_end" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_range_end" =
+    HsBindgen.Runtime.LibC.Word64
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @reader_error_code@
+
+    __defined at:__ @libheif\/heif_context.h 159:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_reader_error_code" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_reader_error_code = y1
+                                           , heif_reader_range_request_result_status = BG.getField @"heif_reader_range_request_result_status" x0
+                                           , heif_reader_range_request_result_range_end = BG.getField @"heif_reader_range_request_result_range_end" x0
+                                           , heif_reader_range_request_result_reader_error_msg = BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_reader_range_request_result_reader_error_code" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_reader_error_code")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_code" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_code" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @reader_error_msg@
+
+    __defined at:__ @libheif\/heif_context.h 160:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.CompatHasField.HasField "heif_reader_range_request_result_reader_error_msg" Heif_reader_range_request_result ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader_range_request_result { heif_reader_range_request_result_reader_error_msg = y1
+                                           , heif_reader_range_request_result_status = BG.getField @"heif_reader_range_request_result_status" x0
+                                           , heif_reader_range_request_result_range_end = BG.getField @"heif_reader_range_request_result_range_end" x0
+                                           , heif_reader_range_request_result_reader_error_code = BG.getField @"heif_reader_range_request_result_reader_error_code" x0
+                                           }
+      , BG.getField @"heif_reader_range_request_result_reader_error_msg" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.HasField "heif_reader_range_request_result_reader_error_msg" (BG.Ptr Heif_reader_range_request_result) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_range_request_result_reader_error_msg")
+
+instance HasCField.HasCField Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_msg" where
+
+  type CFieldType Heif_reader_range_request_result "heif_reader_range_request_result_reader_error_msg" =
+    PtrConst.PtrConst BG.CChar
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @struct heif_reader@
+
+    __defined at:__ @libheif\/heif_context.h 164:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_reader = Heif_reader
+  { heif_reader_reader_api_version :: BG.CInt
+    {- ^ __C declaration:__ @reader_api_version@
+
+         __defined at:__ @libheif\/heif_context.h 167:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_get_position :: BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+    {- ^ __C declaration:__ @get_position@
+
+         __defined at:__ @libheif\/heif_context.h 170:14@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_read :: BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+    {- ^ __C declaration:__ @read@
+
+         __defined at:__ @libheif\/heif_context.h 174:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_seek :: BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+    {- ^ __C declaration:__ @seek@
+
+         __defined at:__ @libheif\/heif_context.h 178:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_wait_for_file_size :: BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+    {- ^ __C declaration:__ @wait_for_file_size@
+
+         __defined at:__ @libheif\/heif_context.h 189:35@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_request_range :: BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+    {- ^ __C declaration:__ @request_range@
+
+         __defined at:__ @libheif\/heif_context.h 212:39@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_preload_range_hint :: BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @preload_range_hint@
+
+         __defined at:__ @libheif\/heif_context.h 219:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_release_file_range :: BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @release_file_range@
+
+         __defined at:__ @libheif\/heif_context.h 225:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_reader_release_error_msg :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+    {- ^ __C declaration:__ @release_error_msg@
+
+         __defined at:__ @libheif\/heif_context.h 230:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_reader where
+
+  staticSizeOf = \_ -> (36 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_reader where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_reader
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_reader_api_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_get_position") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_read") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_seek") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_wait_for_file_size") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_request_range") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_preload_range_hint") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_release_file_range") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_reader_release_error_msg") ptr0
+
+instance Marshal.WriteRaw Heif_reader where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_reader
+            heif_reader_reader_api_version2
+            heif_reader_get_position3
+            heif_reader_read4
+            heif_reader_seek5
+            heif_reader_wait_for_file_size6
+            heif_reader_request_range7
+            heif_reader_preload_range_hint8
+            heif_reader_release_file_range9
+            heif_reader_release_error_msg10 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_reader_reader_api_version") ptr0 heif_reader_reader_api_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_get_position") ptr0 heif_reader_get_position3
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_read") ptr0 heif_reader_read4
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_seek") ptr0 heif_reader_seek5
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_wait_for_file_size") ptr0 heif_reader_wait_for_file_size6
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_request_range") ptr0 heif_reader_request_range7
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_preload_range_hint") ptr0 heif_reader_preload_range_hint8
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_release_file_range") ptr0 heif_reader_release_file_range9
+              >> HasCField.writeRaw (BG.Proxy @"heif_reader_release_error_msg") ptr0 heif_reader_release_error_msg10
+
+deriving via Marshal.EquivStorable Heif_reader instance BG.Storable Heif_reader
+
+deriving via Struct.IsStructViaReadRaw Heif_reader instance Struct.IsStruct Heif_reader
+
+{-| __C declaration:__ @reader_api_version@
+
+    __defined at:__ @libheif\/heif_context.h 167:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_reader_reader_api_version" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_reader_api_version = y1
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_reader_api_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_reader_reader_api_version" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_reader_api_version")
+
+instance HasCField.HasCField Heif_reader "heif_reader_reader_api_version" where
+
+  type CFieldType Heif_reader "heif_reader_reader_api_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @get_position@
+
+    __defined at:__ @libheif\/heif_context.h 170:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+         ) => BG.CompatHasField.HasField "heif_reader_get_position" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_get_position = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_get_position" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+         ) => BG.HasField "heif_reader_get_position" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_get_position")
+
+instance HasCField.HasCField Heif_reader "heif_reader_get_position" where
+
+  type CFieldType Heif_reader "heif_reader_get_position" =
+    BG.FunPtr (BG.Ptr BG.Void -> IO HsBindgen.Runtime.LibC.Int64)
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @read@
+
+    __defined at:__ @libheif\/heif_context.h 174:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.CompatHasField.HasField "heif_reader_read" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_read = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_read" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.HasField "heif_reader_read" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_read")
+
+instance HasCField.HasCField Heif_reader "heif_reader_read" where
+
+  type CFieldType Heif_reader "heif_reader_read" =
+    BG.FunPtr (BG.Ptr BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO BG.CInt)
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @seek@
+
+    __defined at:__ @libheif\/heif_context.h 178:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.CompatHasField.HasField "heif_reader_seek" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_seek = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_seek" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.HasField "heif_reader_seek" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_seek")
+
+instance HasCField.HasCField Heif_reader "heif_reader_seek" where
+
+  type CFieldType Heif_reader "heif_reader_seek" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO BG.CInt)
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @wait_for_file_size@
+
+    __defined at:__ @libheif\/heif_context.h 189:35@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+         ) => BG.CompatHasField.HasField "heif_reader_wait_for_file_size" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_wait_for_file_size = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_wait_for_file_size" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+         ) => BG.HasField "heif_reader_wait_for_file_size" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_wait_for_file_size")
+
+instance HasCField.HasCField Heif_reader "heif_reader_wait_for_file_size" where
+
+  type CFieldType Heif_reader "heif_reader_wait_for_file_size" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @request_range@
+
+    __defined at:__ @libheif\/heif_context.h 212:39@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+         ) => BG.CompatHasField.HasField "heif_reader_request_range" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_request_range = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_request_range" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+         ) => BG.HasField "heif_reader_request_range" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_request_range")
+
+instance HasCField.HasCField Heif_reader "heif_reader_request_range" where
+
+  type CFieldType Heif_reader "heif_reader_request_range" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO Heif_reader_range_request_result)
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @preload_range_hint@
+
+    __defined at:__ @libheif\/heif_context.h 219:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_reader_preload_range_hint" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_preload_range_hint = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_preload_range_hint" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_reader_preload_range_hint" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_preload_range_hint")
+
+instance HasCField.HasCField Heif_reader "heif_reader_preload_range_hint" where
+
+  type CFieldType Heif_reader "heif_reader_preload_range_hint" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @release_file_range@
+
+    __defined at:__ @libheif\/heif_context.h 225:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_reader_release_file_range" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_release_file_range = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_error_msg = BG.getField @"heif_reader_release_error_msg" x0
+                      }
+      , BG.getField @"heif_reader_release_file_range" x0
+      )
+
+instance ( ty ~ BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_reader_release_file_range" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_release_file_range")
+
+instance HasCField.HasCField Heif_reader "heif_reader_release_file_range" where
+
+  type CFieldType Heif_reader "heif_reader_release_file_range" =
+    BG.FunPtr (HsBindgen.Runtime.LibC.Word64 -> HsBindgen.Runtime.LibC.Word64 -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @release_error_msg@
+
+    __defined at:__ @libheif\/heif_context.h 230:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+         ) => BG.CompatHasField.HasField "heif_reader_release_error_msg" Heif_reader ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_reader { heif_reader_release_error_msg = y1
+                      , heif_reader_reader_api_version = BG.getField @"heif_reader_reader_api_version" x0
+                      , heif_reader_get_position = BG.getField @"heif_reader_get_position" x0
+                      , heif_reader_read = BG.getField @"heif_reader_read" x0
+                      , heif_reader_seek = BG.getField @"heif_reader_seek" x0
+                      , heif_reader_wait_for_file_size = BG.getField @"heif_reader_wait_for_file_size" x0
+                      , heif_reader_request_range = BG.getField @"heif_reader_request_range" x0
+                      , heif_reader_preload_range_hint = BG.getField @"heif_reader_preload_range_hint" x0
+                      , heif_reader_release_file_range = BG.getField @"heif_reader_release_file_range" x0
+                      }
+      , BG.getField @"heif_reader_release_error_msg" x0
+      )
+
+instance ( ty ~ BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+         ) => BG.HasField "heif_reader_release_error_msg" (BG.Ptr Heif_reader) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_reader_release_error_msg")
+
+instance HasCField.HasCField Heif_reader "heif_reader_release_error_msg" where
+
+  type CFieldType Heif_reader "heif_reader_release_error_msg" =
+    BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @struct heif_writer@
+
+    __defined at:__ @libheif\/heif_context.h 319:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_writer = Heif_writer
+  { heif_writer_writer_api_version :: BG.CInt
+    {- ^ __C declaration:__ @writer_api_version@
+
+         __defined at:__ @libheif\/heif_context.h 322:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_writer_write :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+    {- ^ __C declaration:__ @write@
+
+         __defined at:__ @libheif\/heif_context.h 327:17@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_writer where
+
+  staticSizeOf = \_ -> (8 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_writer where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_writer
+      <*> HasCField.readRaw (BG.Proxy @"heif_writer_writer_api_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_writer_write") ptr0
+
+instance Marshal.WriteRaw Heif_writer where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_writer heif_writer_writer_api_version2 heif_writer_write3 ->
+               HasCField.writeRaw (BG.Proxy @"heif_writer_writer_api_version") ptr0 heif_writer_writer_api_version2
+            >> HasCField.writeRaw (BG.Proxy @"heif_writer_write") ptr0 heif_writer_write3
+
+deriving via Marshal.EquivStorable Heif_writer instance BG.Storable Heif_writer
+
+deriving via Struct.IsStructViaReadRaw Heif_writer instance Struct.IsStruct Heif_writer
+
+{-| __C declaration:__ @writer_api_version@
+
+    __defined at:__ @libheif\/heif_context.h 322:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_writer_writer_api_version" Heif_writer ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_writer { heif_writer_writer_api_version = y1
+                      , heif_writer_write = BG.getField @"heif_writer_write" x0
+                      }
+      , BG.getField @"heif_writer_writer_api_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_writer_writer_api_version" (BG.Ptr Heif_writer) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_writer_writer_api_version")
+
+instance HasCField.HasCField Heif_writer "heif_writer_writer_api_version" where
+
+  type CFieldType Heif_writer "heif_writer_writer_api_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @write@
+
+    __defined at:__ @libheif\/heif_context.h 327:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+         ) => BG.CompatHasField.HasField "heif_writer_write" Heif_writer ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_writer { heif_writer_write = y1
+                      , heif_writer_writer_api_version = BG.getField @"heif_writer_writer_api_version" x0
+                      }
+      , BG.getField @"heif_writer_write" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+         ) => BG.HasField "heif_writer_write" (BG.Ptr Heif_writer) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_writer_write")
+
+instance HasCField.HasCField Heif_writer "heif_writer_write" where
+
+  type CFieldType Heif_writer "heif_writer_write" =
+    BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> BG.Ptr BG.Void -> IO Heif_error)
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @struct heif_unci_image_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 40:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_unci_image_parameters
+
+{-| __C declaration:__ @struct heif_encoder_descriptor@
+
+    __defined at:__ @libheif\/heif_encoding.h 51:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder_descriptor
+
+{-| __C declaration:__ @struct heif_encoder_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 56:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoder_parameter
+
+{-| __C declaration:__ @enum heif_encoder_parameter_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 154:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_encoder_parameter_type = Heif_encoder_parameter_type
+  { unwrapHeif_encoder_parameter_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_encoder_parameter_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_encoder_parameter_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_encoder_parameter_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_encoder_parameter_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_encoder_parameter_type unwrapHeif_encoder_parameter_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_encoder_parameter_type2
+
+deriving via Marshal.EquivStorable Heif_encoder_parameter_type instance BG.Storable Heif_encoder_parameter_type
+
+deriving via BG.CUInt instance BG.Prim Heif_encoder_parameter_type
+
+instance CEnum.CEnum Heif_encoder_parameter_type where
+
+  type CEnumZ Heif_encoder_parameter_type = BG.CUInt
+
+  toCEnum = Heif_encoder_parameter_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_encoder_parameter_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_encoder_parameter_type_integer")
+                                   , (2, BG.singleton "Heif_encoder_parameter_type_boolean")
+                                   , (3, BG.singleton "Heif_encoder_parameter_type_string")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_encoder_parameter_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_encoder_parameter_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_encoder_parameter_type where
+
+  minDeclaredValue =
+    Heif_encoder_parameter_type_integer
+
+  maxDeclaredValue = Heif_encoder_parameter_type_string
+
+instance Show Heif_encoder_parameter_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_encoder_parameter_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_encoder_parameter_type" Heif_encoder_parameter_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoder_parameter_type {unwrapHeif_encoder_parameter_type = y1}
+      , BG.getField @"unwrapHeif_encoder_parameter_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_encoder_parameter_type" (BG.Ptr Heif_encoder_parameter_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_encoder_parameter_type")
+
+instance HasCField.HasCField Heif_encoder_parameter_type "unwrapHeif_encoder_parameter_type" where
+
+  type CFieldType Heif_encoder_parameter_type "unwrapHeif_encoder_parameter_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_encoder_parameter_type_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 156:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_encoder_parameter_type_integer :: Heif_encoder_parameter_type
+pattern Heif_encoder_parameter_type_integer = Heif_encoder_parameter_type 1
+
+{-| __C declaration:__ @heif_encoder_parameter_type_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 157:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_encoder_parameter_type_boolean :: Heif_encoder_parameter_type
+pattern Heif_encoder_parameter_type_boolean = Heif_encoder_parameter_type 2
+
+{-| __C declaration:__ @heif_encoder_parameter_type_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 158:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_encoder_parameter_type_string :: Heif_encoder_parameter_type
+pattern Heif_encoder_parameter_type_string = Heif_encoder_parameter_type 3
+
+{-| __C declaration:__ @enum heif_orientation@
+
+    __defined at:__ @libheif\/heif_encoding.h 264:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_orientation = Heif_orientation
+  { unwrapHeif_orientation :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_orientation where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_orientation where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_orientation
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_orientation where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_orientation unwrapHeif_orientation2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_orientation2
+
+deriving via Marshal.EquivStorable Heif_orientation instance BG.Storable Heif_orientation
+
+deriving via BG.CUInt instance BG.Prim Heif_orientation
+
+instance CEnum.CEnum Heif_orientation where
+
+  type CEnumZ Heif_orientation = BG.CUInt
+
+  toCEnum = Heif_orientation
+
+  fromCEnum = BG.getField @"unwrapHeif_orientation"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (1, BG.singleton "Heif_orientation_normal")
+                                   , (2, BG.singleton "Heif_orientation_flip_horizontally")
+                                   , (3, BG.singleton "Heif_orientation_rotate_180")
+                                   , (4, BG.singleton "Heif_orientation_flip_vertically")
+                                   , (5, BG.singleton "Heif_orientation_rotate_90_cw_then_flip_horizontally")
+                                   , (6, BG.singleton "Heif_orientation_rotate_90_cw")
+                                   , (7, BG.singleton "Heif_orientation_rotate_90_cw_then_flip_vertically")
+                                   , (8, BG.singleton "Heif_orientation_rotate_270_cw")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_orientation"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_orientation"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_orientation where
+
+  minDeclaredValue = Heif_orientation_normal
+
+  maxDeclaredValue = Heif_orientation_rotate_270_cw
+
+instance Show Heif_orientation where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_orientation where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_orientation" Heif_orientation ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_orientation {unwrapHeif_orientation = y1}
+      , BG.getField @"unwrapHeif_orientation" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_orientation" (BG.Ptr Heif_orientation) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_orientation")
+
+instance HasCField.HasCField Heif_orientation "unwrapHeif_orientation" where
+
+  type CFieldType Heif_orientation "unwrapHeif_orientation" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_orientation_normal@
+
+    __defined at:__ @libheif\/heif_encoding.h 266:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_normal :: Heif_orientation
+pattern Heif_orientation_normal = Heif_orientation 1
+
+{-| __C declaration:__ @heif_orientation_flip_horizontally@
+
+    __defined at:__ @libheif\/heif_encoding.h 267:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_flip_horizontally :: Heif_orientation
+pattern Heif_orientation_flip_horizontally = Heif_orientation 2
+
+{-| __C declaration:__ @heif_orientation_rotate_180@
+
+    __defined at:__ @libheif\/heif_encoding.h 268:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_180 :: Heif_orientation
+pattern Heif_orientation_rotate_180 = Heif_orientation 3
+
+{-| __C declaration:__ @heif_orientation_flip_vertically@
+
+    __defined at:__ @libheif\/heif_encoding.h 269:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_flip_vertically :: Heif_orientation
+pattern Heif_orientation_flip_vertically = Heif_orientation 4
+
+{-| __C declaration:__ @heif_orientation_rotate_90_cw_then_flip_horizontally@
+
+    __defined at:__ @libheif\/heif_encoding.h 270:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_90_cw_then_flip_horizontally :: Heif_orientation
+pattern Heif_orientation_rotate_90_cw_then_flip_horizontally = Heif_orientation 5
+
+{-| __C declaration:__ @heif_orientation_rotate_90_cw@
+
+    __defined at:__ @libheif\/heif_encoding.h 271:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_90_cw :: Heif_orientation
+pattern Heif_orientation_rotate_90_cw = Heif_orientation 6
+
+{-| __C declaration:__ @heif_orientation_rotate_90_cw_then_flip_vertically@
+
+    __defined at:__ @libheif\/heif_encoding.h 272:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_90_cw_then_flip_vertically :: Heif_orientation
+pattern Heif_orientation_rotate_90_cw_then_flip_vertically = Heif_orientation 7
+
+{-| __C declaration:__ @heif_orientation_rotate_270_cw@
+
+    __defined at:__ @libheif\/heif_encoding.h 273:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_orientation_rotate_270_cw :: Heif_orientation
+pattern Heif_orientation_rotate_270_cw = Heif_orientation 8
+
+{-| __C declaration:__ @struct heif_encoding_options@
+
+    __defined at:__ @libheif\/heif_encoding.h 281:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_encoding_options = Heif_encoding_options
+  { heif_encoding_options_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_encoding.h 283:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_save_alpha_channel :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @save_alpha_channel@
+
+         __defined at:__ @libheif\/heif_encoding.h 287:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_macOS_compatibility_workaround :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @macOS_compatibility_workaround@
+
+         __defined at:__ @libheif\/heif_encoding.h 292:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @save_two_colr_boxes_when_ICC_and_nclx_available@
+
+         __defined at:__ @libheif\/heif_encoding.h 296:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_output_nclx_profile :: BG.Ptr Heif_color_profile_nclx
+    {- ^ __C declaration:__ @output_nclx_profile@
+
+         __defined at:__ @libheif\/heif_encoding.h 302:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @macOS_compatibility_workaround_no_nclx_profile@
+
+         __defined at:__ @libheif\/heif_encoding.h 304:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_image_orientation :: Heif_orientation
+    {- ^ __C declaration:__ @image_orientation@
+
+         __defined at:__ @libheif\/heif_encoding.h 309:20@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_color_conversion_options :: Heif_color_conversion_options
+    {- ^ __C declaration:__ @color_conversion_options@
+
+         __defined at:__ @libheif\/heif_encoding.h 313:33@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_prefer_uncC_short_form :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @prefer_uncC_short_form@
+
+         __defined at:__ @libheif\/heif_encoding.h 318:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_encoding_options_unci_parameters :: PtrConst.PtrConst Heif_unci_image_parameters
+    {- ^ __C declaration:__ @unci_parameters@
+
+         __defined at:__ @libheif\/heif_encoding.h 326:37@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_encoding_options where
+
+  staticSizeOf = \_ -> (40 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_encoding_options where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_encoding_options
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_save_alpha_channel") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_output_nclx_profile") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_image_orientation") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_color_conversion_options") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_prefer_uncC_short_form") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_encoding_options_unci_parameters") ptr0
+
+instance Marshal.WriteRaw Heif_encoding_options where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_encoding_options
+            heif_encoding_options_version2
+            heif_encoding_options_save_alpha_channel3
+            heif_encoding_options_macOS_compatibility_workaround4
+            heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available5
+            heif_encoding_options_output_nclx_profile6
+            heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile7
+            heif_encoding_options_image_orientation8
+            heif_encoding_options_color_conversion_options9
+            heif_encoding_options_prefer_uncC_short_form10
+            heif_encoding_options_unci_parameters11 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_encoding_options_version") ptr0 heif_encoding_options_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_save_alpha_channel") ptr0 heif_encoding_options_save_alpha_channel3
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround") ptr0 heif_encoding_options_macOS_compatibility_workaround4
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available") ptr0 heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available5
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_output_nclx_profile") ptr0 heif_encoding_options_output_nclx_profile6
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile") ptr0 heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile7
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_image_orientation") ptr0 heif_encoding_options_image_orientation8
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_color_conversion_options") ptr0 heif_encoding_options_color_conversion_options9
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_prefer_uncC_short_form") ptr0 heif_encoding_options_prefer_uncC_short_form10
+              >> HasCField.writeRaw (BG.Proxy @"heif_encoding_options_unci_parameters") ptr0 heif_encoding_options_unci_parameters11
+
+deriving via Marshal.EquivStorable Heif_encoding_options instance BG.Storable Heif_encoding_options
+
+deriving via Struct.IsStructViaReadRaw Heif_encoding_options instance Struct.IsStruct Heif_encoding_options
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_encoding.h 283:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_version" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_version = y1
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_version" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_version")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_version" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @save_alpha_channel@
+
+    __defined at:__ @libheif\/heif_encoding.h 287:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_save_alpha_channel" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_save_alpha_channel = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_save_alpha_channel" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_save_alpha_channel" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_save_alpha_channel")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_save_alpha_channel" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_save_alpha_channel" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 1
+
+{-| __C declaration:__ @macOS_compatibility_workaround@
+
+    __defined at:__ @libheif\/heif_encoding.h 292:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_macOS_compatibility_workaround" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_macOS_compatibility_workaround = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_macOS_compatibility_workaround" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 2
+
+{-| __C declaration:__ @save_two_colr_boxes_when_ICC_and_nclx_available@
+
+    __defined at:__ @libheif\/heif_encoding.h 296:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 3
+
+{-| __C declaration:__ @output_nclx_profile@
+
+    __defined at:__ @libheif\/heif_encoding.h 302:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.CompatHasField.HasField "heif_encoding_options_output_nclx_profile" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_output_nclx_profile = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_output_nclx_profile" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.HasField "heif_encoding_options_output_nclx_profile" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_output_nclx_profile")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_output_nclx_profile" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_output_nclx_profile" =
+    BG.Ptr Heif_color_profile_nclx
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @macOS_compatibility_workaround_no_nclx_profile@
+
+    __defined at:__ @libheif\/heif_encoding.h 304:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @image_orientation@
+
+    __defined at:__ @libheif\/heif_encoding.h 309:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_orientation
+         ) => BG.CompatHasField.HasField "heif_encoding_options_image_orientation" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_image_orientation = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_image_orientation" x0
+      )
+
+instance ( ty ~ Heif_orientation
+         ) => BG.HasField "heif_encoding_options_image_orientation" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_image_orientation")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_image_orientation" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_image_orientation" =
+    Heif_orientation
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @color_conversion_options@
+
+    __defined at:__ @libheif\/heif_encoding.h 313:33@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.CompatHasField.HasField "heif_encoding_options_color_conversion_options" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_color_conversion_options = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_color_conversion_options" x0
+      )
+
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.HasField "heif_encoding_options_color_conversion_options" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_color_conversion_options")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_color_conversion_options" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_color_conversion_options" =
+    Heif_color_conversion_options
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @prefer_uncC_short_form@
+
+    __defined at:__ @libheif\/heif_encoding.h 318:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_encoding_options_prefer_uncC_short_form" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_prefer_uncC_short_form = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_unci_parameters = BG.getField @"heif_encoding_options_unci_parameters" x0
+                                }
+      , BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_encoding_options_prefer_uncC_short_form" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_prefer_uncC_short_form")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_prefer_uncC_short_form" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_prefer_uncC_short_form" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @unci_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 326:37@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst Heif_unci_image_parameters
+         ) => BG.CompatHasField.HasField "heif_encoding_options_unci_parameters" Heif_encoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_encoding_options { heif_encoding_options_unci_parameters = y1
+                                , heif_encoding_options_version = BG.getField @"heif_encoding_options_version" x0
+                                , heif_encoding_options_save_alpha_channel = BG.getField @"heif_encoding_options_save_alpha_channel" x0
+                                , heif_encoding_options_macOS_compatibility_workaround = BG.getField @"heif_encoding_options_macOS_compatibility_workaround" x0
+                                , heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available = BG.getField @"heif_encoding_options_save_two_colr_boxes_when_ICC_and_nclx_available" x0
+                                , heif_encoding_options_output_nclx_profile = BG.getField @"heif_encoding_options_output_nclx_profile" x0
+                                , heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile = BG.getField @"heif_encoding_options_macOS_compatibility_workaround_no_nclx_profile" x0
+                                , heif_encoding_options_image_orientation = BG.getField @"heif_encoding_options_image_orientation" x0
+                                , heif_encoding_options_color_conversion_options = BG.getField @"heif_encoding_options_color_conversion_options" x0
+                                , heif_encoding_options_prefer_uncC_short_form = BG.getField @"heif_encoding_options_prefer_uncC_short_form" x0
+                                }
+      , BG.getField @"heif_encoding_options_unci_parameters" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst Heif_unci_image_parameters
+         ) => BG.HasField "heif_encoding_options_unci_parameters" (BG.Ptr Heif_encoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_encoding_options_unci_parameters")
+
+instance HasCField.HasCField Heif_encoding_options "heif_encoding_options_unci_parameters" where
+
+  type CFieldType Heif_encoding_options "heif_encoding_options_unci_parameters" =
+    PtrConst.PtrConst Heif_unci_image_parameters
+
+  offset# = \_ -> \_ -> 36
+
+{-| __C declaration:__ @enum heif_progress_step@
+
+    __defined at:__ @libheif\/heif_decoding.h 56:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_progress_step = Heif_progress_step
+  { unwrapHeif_progress_step :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_progress_step where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_progress_step where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_progress_step
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_progress_step where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_progress_step unwrapHeif_progress_step2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_progress_step2
+
+deriving via Marshal.EquivStorable Heif_progress_step instance BG.Storable Heif_progress_step
+
+deriving via BG.CUInt instance BG.Prim Heif_progress_step
+
+instance CEnum.CEnum Heif_progress_step where
+
+  type CEnumZ Heif_progress_step = BG.CUInt
+
+  toCEnum = Heif_progress_step
+
+  fromCEnum = BG.getField @"unwrapHeif_progress_step"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_progress_step_total")
+                                   , (1, BG.singleton "Heif_progress_step_load_tile")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_progress_step"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_progress_step"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_progress_step where
+
+  minDeclaredValue = Heif_progress_step_total
+
+  maxDeclaredValue = Heif_progress_step_load_tile
+
+instance Show Heif_progress_step where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_progress_step where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_progress_step" Heif_progress_step ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_progress_step {unwrapHeif_progress_step = y1}
+      , BG.getField @"unwrapHeif_progress_step" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_progress_step" (BG.Ptr Heif_progress_step) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_progress_step")
+
+instance HasCField.HasCField Heif_progress_step "unwrapHeif_progress_step" where
+
+  type CFieldType Heif_progress_step "unwrapHeif_progress_step" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_progress_step_total@
+
+    __defined at:__ @libheif\/heif_decoding.h 58:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_progress_step_total :: Heif_progress_step
+pattern Heif_progress_step_total = Heif_progress_step 0
+
+{-| __C declaration:__ @heif_progress_step_load_tile@
+
+    __defined at:__ @libheif\/heif_decoding.h 59:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_progress_step_load_tile :: Heif_progress_step
+pattern Heif_progress_step_load_tile = Heif_progress_step 1
+
+{-| __C declaration:__ @struct heif_decoding_options@
+
+    __defined at:__ @libheif\/heif_decoding.h 63:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoding_options = Heif_decoding_options
+  { heif_decoding_options_version :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_decoding.h 65:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_ignore_transformations :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @ignore_transformations@
+
+         __defined at:__ @libheif\/heif_decoding.h 71:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_start_progress :: BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @start_progress@
+
+         __defined at:__ @libheif\/heif_decoding.h 74:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_on_progress :: BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @on_progress@
+
+         __defined at:__ @libheif\/heif_decoding.h 76:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_end_progress :: BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+    {- ^ __C declaration:__ @end_progress@
+
+         __defined at:__ @libheif\/heif_decoding.h 78:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_progress_user_data :: BG.Ptr BG.Void
+    {- ^ __C declaration:__ @progress_user_data@
+
+         __defined at:__ @libheif\/heif_decoding.h 80:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_convert_hdr_to_8bit :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @convert_hdr_to_8bit@
+
+         __defined at:__ @libheif\/heif_decoding.h 84:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_strict_decoding :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @strict_decoding@
+
+         __defined at:__ @libheif\/heif_decoding.h 90:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_decoder_id :: PtrConst.PtrConst BG.CChar
+    {- ^ __C declaration:__ @decoder_id@
+
+         __defined at:__ @libheif\/heif_decoding.h 97:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_color_conversion_options :: Heif_color_conversion_options
+    {- ^ __C declaration:__ @color_conversion_options@
+
+         __defined at:__ @libheif\/heif_decoding.h 101:33@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_cancel_decoding :: BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+    {- ^ __C declaration:__ @cancel_decoding@
+
+         __defined at:__ @libheif\/heif_decoding.h 105:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_color_conversion_options_ext :: BG.Ptr Heif_color_conversion_options_ext
+    {- ^ __C declaration:__ @color_conversion_options_ext@
+
+         __defined at:__ @libheif\/heif_decoding.h 110:38@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_ignore_sequence_editlist :: BG.CInt
+    {- ^ __C declaration:__ @ignore_sequence_editlist@
+
+         __defined at:__ @libheif\/heif_decoding.h 115:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_output_image_nclx_profile :: BG.Ptr Heif_color_profile_nclx
+    {- ^ __C declaration:__ @output_image_nclx_profile@
+
+         __defined at:__ @libheif\/heif_decoding.h 126:28@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_num_library_threads :: BG.CInt
+    {- ^ __C declaration:__ @num_library_threads@
+
+         __defined at:__ @libheif\/heif_decoding.h 128:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_num_codec_threads :: BG.CInt
+    {- ^ __C declaration:__ @num_codec_threads@
+
+         __defined at:__ @libheif\/heif_decoding.h 129:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_autocorrect_broken_input :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @autocorrect_broken_input@
+
+         __defined at:__ @libheif\/heif_decoding.h 136:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_decoding_options_output_image_nclx_profile_passthrough :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @output_image_nclx_profile_passthrough@
+
+         __defined at:__ @libheif\/heif_decoding.h 157:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_decoding_options where
+
+  staticSizeOf = \_ -> (72 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_decoding_options where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_decoding_options
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_ignore_transformations") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_start_progress") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_on_progress") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_end_progress") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_progress_user_data") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_convert_hdr_to_8bit") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_strict_decoding") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_decoder_id") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_color_conversion_options") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_cancel_decoding") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_color_conversion_options_ext") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_ignore_sequence_editlist") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_num_library_threads") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_num_codec_threads") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_autocorrect_broken_input") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile_passthrough") ptr0
+
+instance Marshal.WriteRaw Heif_decoding_options where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_decoding_options
+            heif_decoding_options_version2
+            heif_decoding_options_ignore_transformations3
+            heif_decoding_options_start_progress4
+            heif_decoding_options_on_progress5
+            heif_decoding_options_end_progress6
+            heif_decoding_options_progress_user_data7
+            heif_decoding_options_convert_hdr_to_8bit8
+            heif_decoding_options_strict_decoding9
+            heif_decoding_options_decoder_id10
+            heif_decoding_options_color_conversion_options11
+            heif_decoding_options_cancel_decoding12
+            heif_decoding_options_color_conversion_options_ext13
+            heif_decoding_options_ignore_sequence_editlist14
+            heif_decoding_options_output_image_nclx_profile15
+            heif_decoding_options_num_library_threads16
+            heif_decoding_options_num_codec_threads17
+            heif_decoding_options_autocorrect_broken_input18
+            heif_decoding_options_output_image_nclx_profile_passthrough19 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_decoding_options_version") ptr0 heif_decoding_options_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_ignore_transformations") ptr0 heif_decoding_options_ignore_transformations3
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_start_progress") ptr0 heif_decoding_options_start_progress4
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_on_progress") ptr0 heif_decoding_options_on_progress5
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_end_progress") ptr0 heif_decoding_options_end_progress6
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_progress_user_data") ptr0 heif_decoding_options_progress_user_data7
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_convert_hdr_to_8bit") ptr0 heif_decoding_options_convert_hdr_to_8bit8
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_strict_decoding") ptr0 heif_decoding_options_strict_decoding9
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_decoder_id") ptr0 heif_decoding_options_decoder_id10
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_color_conversion_options") ptr0 heif_decoding_options_color_conversion_options11
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_cancel_decoding") ptr0 heif_decoding_options_cancel_decoding12
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_color_conversion_options_ext") ptr0 heif_decoding_options_color_conversion_options_ext13
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_ignore_sequence_editlist") ptr0 heif_decoding_options_ignore_sequence_editlist14
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile") ptr0 heif_decoding_options_output_image_nclx_profile15
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_num_library_threads") ptr0 heif_decoding_options_num_library_threads16
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_num_codec_threads") ptr0 heif_decoding_options_num_codec_threads17
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_autocorrect_broken_input") ptr0 heif_decoding_options_autocorrect_broken_input18
+              >> HasCField.writeRaw (BG.Proxy @"heif_decoding_options_output_image_nclx_profile_passthrough") ptr0 heif_decoding_options_output_image_nclx_profile_passthrough19
+
+deriving via Marshal.EquivStorable Heif_decoding_options instance BG.Storable Heif_decoding_options
+
+deriving via Struct.IsStructViaReadRaw Heif_decoding_options instance Struct.IsStruct Heif_decoding_options
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_decoding.h 65:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_version" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_version = y1
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_version" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_version" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_version")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_version" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_version" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @ignore_transformations@
+
+    __defined at:__ @libheif\/heif_decoding.h 71:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_ignore_transformations" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_ignore_transformations = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_ignore_transformations" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_ignore_transformations" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_ignore_transformations")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_ignore_transformations" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_ignore_transformations" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 1
+
+{-| __C declaration:__ @start_progress@
+
+    __defined at:__ @libheif\/heif_decoding.h 74:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_decoding_options_start_progress" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_start_progress = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_start_progress" x0
+      )
+
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_decoding_options_start_progress" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_start_progress")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_start_progress" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_start_progress" =
+    BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @on_progress@
+
+    __defined at:__ @libheif\/heif_decoding.h 76:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_decoding_options_on_progress" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_on_progress = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_on_progress" x0
+      )
+
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_decoding_options_on_progress" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_on_progress")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_on_progress" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_on_progress" =
+    BG.FunPtr (Heif_progress_step -> BG.CInt -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @end_progress@
+
+    __defined at:__ @libheif\/heif_decoding.h 78:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+         ) => BG.CompatHasField.HasField "heif_decoding_options_end_progress" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_end_progress = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_end_progress" x0
+      )
+
+instance ( ty ~ BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+         ) => BG.HasField "heif_decoding_options_end_progress" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_end_progress")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_end_progress" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_end_progress" =
+    BG.FunPtr (Heif_progress_step -> BG.Ptr BG.Void -> IO ())
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @progress_user_data@
+
+    __defined at:__ @libheif\/heif_decoding.h 80:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.CompatHasField.HasField "heif_decoding_options_progress_user_data" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_progress_user_data = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_progress_user_data" x0
+      )
+
+instance ( ty ~ BG.Ptr BG.Void
+         ) => BG.HasField "heif_decoding_options_progress_user_data" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_progress_user_data")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_progress_user_data" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_progress_user_data" =
+    BG.Ptr BG.Void
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @convert_hdr_to_8bit@
+
+    __defined at:__ @libheif\/heif_decoding.h 84:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_convert_hdr_to_8bit" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_convert_hdr_to_8bit = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_convert_hdr_to_8bit" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_convert_hdr_to_8bit")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_convert_hdr_to_8bit" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_convert_hdr_to_8bit" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @strict_decoding@
+
+    __defined at:__ @libheif\/heif_decoding.h 90:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_strict_decoding" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_strict_decoding = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_strict_decoding" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_strict_decoding" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_strict_decoding")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_strict_decoding" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_strict_decoding" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 21
+
+{-| __C declaration:__ @decoder_id@
+
+    __defined at:__ @libheif\/heif_decoding.h 97:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.CompatHasField.HasField "heif_decoding_options_decoder_id" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_decoder_id = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_decoder_id" x0
+      )
+
+instance ( ty ~ PtrConst.PtrConst BG.CChar
+         ) => BG.HasField "heif_decoding_options_decoder_id" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_decoder_id")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_decoder_id" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_decoder_id" =
+    PtrConst.PtrConst BG.CChar
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @color_conversion_options@
+
+    __defined at:__ @libheif\/heif_decoding.h 101:33@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.CompatHasField.HasField "heif_decoding_options_color_conversion_options" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_color_conversion_options = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_color_conversion_options" x0
+      )
+
+instance ( ty ~ Heif_color_conversion_options
+         ) => BG.HasField "heif_decoding_options_color_conversion_options" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_color_conversion_options")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_color_conversion_options" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_color_conversion_options" =
+    Heif_color_conversion_options
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @cancel_decoding@
+
+    __defined at:__ @libheif\/heif_decoding.h 105:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.CompatHasField.HasField "heif_decoding_options_cancel_decoding" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_cancel_decoding = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_cancel_decoding" x0
+      )
+
+instance ( ty ~ BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+         ) => BG.HasField "heif_decoding_options_cancel_decoding" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_cancel_decoding")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_cancel_decoding" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_cancel_decoding" =
+    BG.FunPtr (BG.Ptr BG.Void -> IO BG.CInt)
+
+  offset# = \_ -> \_ -> 44
+
+{-| __C declaration:__ @color_conversion_options_ext@
+
+    __defined at:__ @libheif\/heif_decoding.h 110:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_color_conversion_options_ext
+         ) => BG.CompatHasField.HasField "heif_decoding_options_color_conversion_options_ext" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_color_conversion_options_ext = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_color_conversion_options_ext
+         ) => BG.HasField "heif_decoding_options_color_conversion_options_ext" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_color_conversion_options_ext")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_color_conversion_options_ext" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_color_conversion_options_ext" =
+    BG.Ptr Heif_color_conversion_options_ext
+
+  offset# = \_ -> \_ -> 48
+
+{-| __C declaration:__ @ignore_sequence_editlist@
+
+    __defined at:__ @libheif\/heif_decoding.h 115:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_decoding_options_ignore_sequence_editlist" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_ignore_sequence_editlist = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_decoding_options_ignore_sequence_editlist" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_ignore_sequence_editlist")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_ignore_sequence_editlist" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_ignore_sequence_editlist" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 52
+
+{-| __C declaration:__ @output_image_nclx_profile@
+
+    __defined at:__ @libheif\/heif_decoding.h 126:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.CompatHasField.HasField "heif_decoding_options_output_image_nclx_profile" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_output_image_nclx_profile = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+      )
+
+instance ( ty ~ BG.Ptr Heif_color_profile_nclx
+         ) => BG.HasField "heif_decoding_options_output_image_nclx_profile" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_output_image_nclx_profile")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_output_image_nclx_profile" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_output_image_nclx_profile" =
+    BG.Ptr Heif_color_profile_nclx
+
+  offset# = \_ -> \_ -> 56
+
+{-| __C declaration:__ @num_library_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 128:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_decoding_options_num_library_threads" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_num_library_threads = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_num_library_threads" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_decoding_options_num_library_threads" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_num_library_threads")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_num_library_threads" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_num_library_threads" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 60
+
+{-| __C declaration:__ @num_codec_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 129:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_decoding_options_num_codec_threads" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_num_codec_threads = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_num_codec_threads" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_decoding_options_num_codec_threads" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_num_codec_threads")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_num_codec_threads" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_num_codec_threads" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 64
+
+{-| __C declaration:__ @autocorrect_broken_input@
+
+    __defined at:__ @libheif\/heif_decoding.h 136:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_autocorrect_broken_input" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_autocorrect_broken_input = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_output_image_nclx_profile_passthrough = BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+                                }
+      , BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_autocorrect_broken_input" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_autocorrect_broken_input")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_autocorrect_broken_input" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_autocorrect_broken_input" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 68
+
+{-| __C declaration:__ @output_image_nclx_profile_passthrough@
+
+    __defined at:__ @libheif\/heif_decoding.h 157:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_decoding_options_output_image_nclx_profile_passthrough" Heif_decoding_options ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_decoding_options { heif_decoding_options_output_image_nclx_profile_passthrough = y1
+                                , heif_decoding_options_version = BG.getField @"heif_decoding_options_version" x0
+                                , heif_decoding_options_ignore_transformations = BG.getField @"heif_decoding_options_ignore_transformations" x0
+                                , heif_decoding_options_start_progress = BG.getField @"heif_decoding_options_start_progress" x0
+                                , heif_decoding_options_on_progress = BG.getField @"heif_decoding_options_on_progress" x0
+                                , heif_decoding_options_end_progress = BG.getField @"heif_decoding_options_end_progress" x0
+                                , heif_decoding_options_progress_user_data = BG.getField @"heif_decoding_options_progress_user_data" x0
+                                , heif_decoding_options_convert_hdr_to_8bit = BG.getField @"heif_decoding_options_convert_hdr_to_8bit" x0
+                                , heif_decoding_options_strict_decoding = BG.getField @"heif_decoding_options_strict_decoding" x0
+                                , heif_decoding_options_decoder_id = BG.getField @"heif_decoding_options_decoder_id" x0
+                                , heif_decoding_options_color_conversion_options = BG.getField @"heif_decoding_options_color_conversion_options" x0
+                                , heif_decoding_options_cancel_decoding = BG.getField @"heif_decoding_options_cancel_decoding" x0
+                                , heif_decoding_options_color_conversion_options_ext = BG.getField @"heif_decoding_options_color_conversion_options_ext" x0
+                                , heif_decoding_options_ignore_sequence_editlist = BG.getField @"heif_decoding_options_ignore_sequence_editlist" x0
+                                , heif_decoding_options_output_image_nclx_profile = BG.getField @"heif_decoding_options_output_image_nclx_profile" x0
+                                , heif_decoding_options_num_library_threads = BG.getField @"heif_decoding_options_num_library_threads" x0
+                                , heif_decoding_options_num_codec_threads = BG.getField @"heif_decoding_options_num_codec_threads" x0
+                                , heif_decoding_options_autocorrect_broken_input = BG.getField @"heif_decoding_options_autocorrect_broken_input" x0
+                                }
+      , BG.getField @"heif_decoding_options_output_image_nclx_profile_passthrough" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_decoding_options_output_image_nclx_profile_passthrough" (BG.Ptr Heif_decoding_options) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_decoding_options_output_image_nclx_profile_passthrough")
+
+instance HasCField.HasCField Heif_decoding_options "heif_decoding_options_output_image_nclx_profile_passthrough" where
+
+  type CFieldType Heif_decoding_options "heif_decoding_options_output_image_nclx_profile_passthrough" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 69
+
+{-| __C declaration:__ @struct heif_decoder_descriptor@
+
+    __defined at:__ @libheif\/heif_decoding.h 175:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_decoder_descriptor
+
+{-| __C declaration:__ @struct heif_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 37:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_image_tiling = Heif_image_tiling
+  { heif_image_tiling_version :: BG.CInt
+    {- ^ __C declaration:__ @version@
+
+         __defined at:__ @libheif\/heif_tiling.h 39:7@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_num_columns :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @num_columns@
+
+         __defined at:__ @libheif\/heif_tiling.h 43:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_num_rows :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @num_rows@
+
+         __defined at:__ @libheif\/heif_tiling.h 44:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_tile_width :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @tile_width@
+
+         __defined at:__ @libheif\/heif_tiling.h 45:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_tile_height :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @tile_height@
+
+         __defined at:__ @libheif\/heif_tiling.h 46:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_image_width :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @image_width@
+
+         __defined at:__ @libheif\/heif_tiling.h 48:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_image_height :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @image_height@
+
+         __defined at:__ @libheif\/heif_tiling.h 49:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_top_offset :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @top_offset@
+
+         __defined at:__ @libheif\/heif_tiling.h 54:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_left_offset :: HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @left_offset@
+
+         __defined at:__ @libheif\/heif_tiling.h 55:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_number_of_extra_dimensions :: HsBindgen.Runtime.LibC.Word8
+    {- ^ __C declaration:__ @number_of_extra_dimensions@
+
+         __defined at:__ @libheif\/heif_tiling.h 57:11@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_image_tiling_extra_dimension_size :: CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+    {- ^ __C declaration:__ @extra_dimension_size@
+
+         __defined at:__ @libheif\/heif_tiling.h 58:12@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_image_tiling where
+
+  staticSizeOf = \_ -> (72 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_image_tiling where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_image_tiling
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_version") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_num_columns") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_num_rows") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_tile_width") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_tile_height") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_image_width") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_image_height") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_top_offset") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_left_offset") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_number_of_extra_dimensions") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_image_tiling_extra_dimension_size") ptr0
+
+instance Marshal.WriteRaw Heif_image_tiling where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_image_tiling
+            heif_image_tiling_version2
+            heif_image_tiling_num_columns3
+            heif_image_tiling_num_rows4
+            heif_image_tiling_tile_width5
+            heif_image_tiling_tile_height6
+            heif_image_tiling_image_width7
+            heif_image_tiling_image_height8
+            heif_image_tiling_top_offset9
+            heif_image_tiling_left_offset10
+            heif_image_tiling_number_of_extra_dimensions11
+            heif_image_tiling_extra_dimension_size12 ->
+                 HasCField.writeRaw (BG.Proxy @"heif_image_tiling_version") ptr0 heif_image_tiling_version2
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_num_columns") ptr0 heif_image_tiling_num_columns3
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_num_rows") ptr0 heif_image_tiling_num_rows4
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_tile_width") ptr0 heif_image_tiling_tile_width5
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_tile_height") ptr0 heif_image_tiling_tile_height6
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_image_width") ptr0 heif_image_tiling_image_width7
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_image_height") ptr0 heif_image_tiling_image_height8
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_top_offset") ptr0 heif_image_tiling_top_offset9
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_left_offset") ptr0 heif_image_tiling_left_offset10
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_number_of_extra_dimensions") ptr0 heif_image_tiling_number_of_extra_dimensions11
+              >> HasCField.writeRaw (BG.Proxy @"heif_image_tiling_extra_dimension_size") ptr0 heif_image_tiling_extra_dimension_size12
+
+deriving via Marshal.EquivStorable Heif_image_tiling instance BG.Storable Heif_image_tiling
+
+deriving via Struct.IsStructViaReadRaw Heif_image_tiling instance Struct.IsStruct Heif_image_tiling
+
+{-| __C declaration:__ @version@
+
+    __defined at:__ @libheif\/heif_tiling.h 39:7@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CInt
+         ) => BG.CompatHasField.HasField "heif_image_tiling_version" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_version = y1
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_version" x0
+      )
+
+instance ( ty ~ BG.CInt
+         ) => BG.HasField "heif_image_tiling_version" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_version")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_version" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_version" =
+    BG.CInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @num_columns@
+
+    __defined at:__ @libheif\/heif_tiling.h 43:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_num_columns" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_num_columns = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_num_columns" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_num_columns" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_num_columns")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_num_columns" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_num_columns" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @num_rows@
+
+    __defined at:__ @libheif\/heif_tiling.h 44:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_num_rows" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_num_rows = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_num_rows" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_num_rows" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_num_rows")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_num_rows" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_num_rows" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @tile_width@
+
+    __defined at:__ @libheif\/heif_tiling.h 45:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_tile_width" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_tile_width = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_tile_width" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_tile_width" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_tile_width")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_tile_width" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_tile_width" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 12
+
+{-| __C declaration:__ @tile_height@
+
+    __defined at:__ @libheif\/heif_tiling.h 46:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_tile_height" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_tile_height = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_tile_height" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_tile_height" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_tile_height")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_tile_height" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_tile_height" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 16
+
+{-| __C declaration:__ @image_width@
+
+    __defined at:__ @libheif\/heif_tiling.h 48:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_image_width" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_image_width = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_image_width" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_image_width" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_image_width")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_image_width" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_image_width" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 20
+
+{-| __C declaration:__ @image_height@
+
+    __defined at:__ @libheif\/heif_tiling.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_image_height" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_image_height = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_image_height" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_image_height" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_image_height")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_image_height" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_image_height" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 24
+
+{-| __C declaration:__ @top_offset@
+
+    __defined at:__ @libheif\/heif_tiling.h 54:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_top_offset" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_top_offset = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_top_offset" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_top_offset" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_top_offset")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_top_offset" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_top_offset" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 28
+
+{-| __C declaration:__ @left_offset@
+
+    __defined at:__ @libheif\/heif_tiling.h 55:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_left_offset" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_left_offset = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_left_offset" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_left_offset" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_left_offset")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_left_offset" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_left_offset" =
+    HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 32
+
+{-| __C declaration:__ @number_of_extra_dimensions@
+
+    __defined at:__ @libheif\/heif_tiling.h 57:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.CompatHasField.HasField "heif_image_tiling_number_of_extra_dimensions" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_number_of_extra_dimensions = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_extra_dimension_size = BG.getField @"heif_image_tiling_extra_dimension_size" x0
+                            }
+      , BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+      )
+
+instance ( ty ~ HsBindgen.Runtime.LibC.Word8
+         ) => BG.HasField "heif_image_tiling_number_of_extra_dimensions" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_number_of_extra_dimensions")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_number_of_extra_dimensions" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_number_of_extra_dimensions" =
+    HsBindgen.Runtime.LibC.Word8
+
+  offset# = \_ -> \_ -> 36
+
+{-| __C declaration:__ @extra_dimension_size@
+
+    __defined at:__ @libheif\/heif_tiling.h 58:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+         ) => BG.CompatHasField.HasField "heif_image_tiling_extra_dimension_size" Heif_image_tiling ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_image_tiling { heif_image_tiling_extra_dimension_size = y1
+                            , heif_image_tiling_version = BG.getField @"heif_image_tiling_version" x0
+                            , heif_image_tiling_num_columns = BG.getField @"heif_image_tiling_num_columns" x0
+                            , heif_image_tiling_num_rows = BG.getField @"heif_image_tiling_num_rows" x0
+                            , heif_image_tiling_tile_width = BG.getField @"heif_image_tiling_tile_width" x0
+                            , heif_image_tiling_tile_height = BG.getField @"heif_image_tiling_tile_height" x0
+                            , heif_image_tiling_image_width = BG.getField @"heif_image_tiling_image_width" x0
+                            , heif_image_tiling_image_height = BG.getField @"heif_image_tiling_image_height" x0
+                            , heif_image_tiling_top_offset = BG.getField @"heif_image_tiling_top_offset" x0
+                            , heif_image_tiling_left_offset = BG.getField @"heif_image_tiling_left_offset" x0
+                            , heif_image_tiling_number_of_extra_dimensions = BG.getField @"heif_image_tiling_number_of_extra_dimensions" x0
+                            }
+      , BG.getField @"heif_image_tiling_extra_dimension_size" x0
+      )
+
+instance ( ty ~ CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+         ) => BG.HasField "heif_image_tiling_extra_dimension_size" (BG.Ptr Heif_image_tiling) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_image_tiling_extra_dimension_size")
+
+instance HasCField.HasCField Heif_image_tiling "heif_image_tiling_extra_dimension_size" where
+
+  type CFieldType Heif_image_tiling "heif_image_tiling_extra_dimension_size" =
+    CA.ConstantArray 8 HsBindgen.Runtime.LibC.Word32
+
+  offset# = \_ -> \_ -> 40
+
+{-| __C declaration:__ @enum heif_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 48:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_component_datatype = Heif_component_datatype
+  { unwrapHeif_component_datatype :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_component_datatype where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_component_datatype where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_component_datatype
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_component_datatype where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_component_datatype unwrapHeif_component_datatype2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_component_datatype2
+
+deriving via Marshal.EquivStorable Heif_component_datatype instance BG.Storable Heif_component_datatype
+
+deriving via BG.CUInt instance BG.Prim Heif_component_datatype
+
+instance CEnum.CEnum Heif_component_datatype where
+
+  type CEnumZ Heif_component_datatype = BG.CUInt
+
+  toCEnum = Heif_component_datatype
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_component_datatype"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_component_datatype_unsigned_integer")
+                                   , (1, BG.singleton "Heif_component_datatype_floating_point")
+                                   , (2, BG.singleton "Heif_component_datatype_complex_number")
+                                   , (3, BG.singleton "Heif_component_datatype_signed_integer")
+                                   , (255, BG.singleton "Heif_component_datatype_undefined")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_component_datatype"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_component_datatype"
+
+instance Show Heif_component_datatype where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_component_datatype where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_component_datatype" Heif_component_datatype ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_component_datatype {unwrapHeif_component_datatype = y1}
+      , BG.getField @"unwrapHeif_component_datatype" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_component_datatype" (BG.Ptr Heif_component_datatype) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_component_datatype")
+
+instance HasCField.HasCField Heif_component_datatype "unwrapHeif_component_datatype" where
+
+  type CFieldType Heif_component_datatype "unwrapHeif_component_datatype" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_component_datatype_unsigned_integer@
+
+    __defined at:__ @libheif\/heif_components.h 50:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_unsigned_integer :: Heif_component_datatype
+pattern Heif_component_datatype_unsigned_integer = Heif_component_datatype 0
+
+{-| __C declaration:__ @heif_component_datatype_floating_point@
+
+    __defined at:__ @libheif\/heif_components.h 51:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_floating_point :: Heif_component_datatype
+pattern Heif_component_datatype_floating_point = Heif_component_datatype 1
+
+{-| __C declaration:__ @heif_component_datatype_complex_number@
+
+    __defined at:__ @libheif\/heif_components.h 52:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_complex_number :: Heif_component_datatype
+pattern Heif_component_datatype_complex_number = Heif_component_datatype 2
+
+{-| __C declaration:__ @heif_component_datatype_signed_integer@
+
+    __defined at:__ @libheif\/heif_components.h 53:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_signed_integer :: Heif_component_datatype
+pattern Heif_component_datatype_signed_integer = Heif_component_datatype 3
+
+{-| __C declaration:__ @heif_component_datatype_undefined@
+
+    __defined at:__ @libheif\/heif_components.h 54:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_component_datatype_undefined :: Heif_component_datatype
+pattern Heif_component_datatype_undefined = Heif_component_datatype 255
+
+{-| __C declaration:__ @struct heif_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 57:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_complex32 = Heif_complex32
+  { heif_complex32_real :: BG.CFloat
+    {- ^ __C declaration:__ @real@
+
+         __defined at:__ @libheif\/heif_components.h 59:9@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_complex32_imaginary :: BG.CFloat
+    {- ^ __C declaration:__ @imaginary@
+
+         __defined at:__ @libheif\/heif_components.h 59:15@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_complex32 where
+
+  staticSizeOf = \_ -> (8 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_complex32 where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_complex32
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex32_real") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex32_imaginary") ptr0
+
+instance Marshal.WriteRaw Heif_complex32 where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_complex32 heif_complex32_real2 heif_complex32_imaginary3 ->
+               HasCField.writeRaw (BG.Proxy @"heif_complex32_real") ptr0 heif_complex32_real2
+            >> HasCField.writeRaw (BG.Proxy @"heif_complex32_imaginary") ptr0 heif_complex32_imaginary3
+
+deriving via Marshal.EquivStorable Heif_complex32 instance BG.Storable Heif_complex32
+
+deriving via Struct.IsStructViaReadRaw Heif_complex32 instance Struct.IsStruct Heif_complex32
+
+{-| __C declaration:__ @real@
+
+    __defined at:__ @libheif\/heif_components.h 59:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_complex32_real" Heif_complex32 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex32 { heif_complex32_real = y1
+                         , heif_complex32_imaginary = BG.getField @"heif_complex32_imaginary" x0
+                         }
+      , BG.getField @"heif_complex32_real" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_complex32_real" (BG.Ptr Heif_complex32) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex32_real")
+
+instance HasCField.HasCField Heif_complex32 "heif_complex32_real" where
+
+  type CFieldType Heif_complex32 "heif_complex32_real" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @imaginary@
+
+    __defined at:__ @libheif\/heif_components.h 59:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CFloat
+         ) => BG.CompatHasField.HasField "heif_complex32_imaginary" Heif_complex32 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex32 { heif_complex32_imaginary = y1
+                         , heif_complex32_real = BG.getField @"heif_complex32_real" x0
+                         }
+      , BG.getField @"heif_complex32_imaginary" x0
+      )
+
+instance ( ty ~ BG.CFloat
+         ) => BG.HasField "heif_complex32_imaginary" (BG.Ptr Heif_complex32) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex32_imaginary")
+
+instance HasCField.HasCField Heif_complex32 "heif_complex32_imaginary" where
+
+  type CFieldType Heif_complex32 "heif_complex32_imaginary" =
+    BG.CFloat
+
+  offset# = \_ -> \_ -> 4
+
+{-| __C declaration:__ @struct heif_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 62:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+data Heif_complex64 = Heif_complex64
+  { heif_complex64_real :: BG.CDouble
+    {- ^ __C declaration:__ @real@
+
+         __defined at:__ @libheif\/heif_components.h 64:10@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  , heif_complex64_imaginary :: BG.CDouble
+    {- ^ __C declaration:__ @imaginary@
+
+         __defined at:__ @libheif\/heif_components.h 64:16@
+
+         __exported by:__ @libheif\/heif.h@
+    -}
+  }
+  deriving stock (Eq, BG.Generic, Show)
+
+instance Marshal.StaticSize Heif_complex64 where
+
+  staticSizeOf = \_ -> (16 :: Int)
+
+  staticAlignment = \_ -> (8 :: Int)
+
+instance Marshal.ReadRaw Heif_complex64 where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_complex64
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex64_real") ptr0
+      <*> HasCField.readRaw (BG.Proxy @"heif_complex64_imaginary") ptr0
+
+instance Marshal.WriteRaw Heif_complex64 where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_complex64 heif_complex64_real2 heif_complex64_imaginary3 ->
+               HasCField.writeRaw (BG.Proxy @"heif_complex64_real") ptr0 heif_complex64_real2
+            >> HasCField.writeRaw (BG.Proxy @"heif_complex64_imaginary") ptr0 heif_complex64_imaginary3
+
+deriving via Marshal.EquivStorable Heif_complex64 instance BG.Storable Heif_complex64
+
+deriving via Struct.IsStructViaReadRaw Heif_complex64 instance Struct.IsStruct Heif_complex64
+
+{-| __C declaration:__ @real@
+
+    __defined at:__ @libheif\/heif_components.h 64:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_complex64_real" Heif_complex64 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex64 { heif_complex64_real = y1
+                         , heif_complex64_imaginary = BG.getField @"heif_complex64_imaginary" x0
+                         }
+      , BG.getField @"heif_complex64_real" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_complex64_real" (BG.Ptr Heif_complex64) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex64_real")
+
+instance HasCField.HasCField Heif_complex64 "heif_complex64_real" where
+
+  type CFieldType Heif_complex64 "heif_complex64_real" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @imaginary@
+
+    __defined at:__ @libheif\/heif_components.h 64:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+instance ( ty ~ BG.CDouble
+         ) => BG.CompatHasField.HasField "heif_complex64_imaginary" Heif_complex64 ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_complex64 { heif_complex64_imaginary = y1
+                         , heif_complex64_real = BG.getField @"heif_complex64_real" x0
+                         }
+      , BG.getField @"heif_complex64_imaginary" x0
+      )
+
+instance ( ty ~ BG.CDouble
+         ) => BG.HasField "heif_complex64_imaginary" (BG.Ptr Heif_complex64) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"heif_complex64_imaginary")
+
+instance HasCField.HasCField Heif_complex64 "heif_complex64_imaginary" where
+
+  type CFieldType Heif_complex64 "heif_complex64_imaginary" =
+    BG.CDouble
+
+  offset# = \_ -> \_ -> 8
+
+{-| __C declaration:__ @enum heif_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 70:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_cmpd_component_type = Heif_cmpd_component_type
+  { unwrapHeif_cmpd_component_type :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_cmpd_component_type where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_cmpd_component_type where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_cmpd_component_type
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_cmpd_component_type where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_cmpd_component_type unwrapHeif_cmpd_component_type2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_cmpd_component_type2
+
+deriving via Marshal.EquivStorable Heif_cmpd_component_type instance BG.Storable Heif_cmpd_component_type
+
+deriving via BG.CUInt instance BG.Prim Heif_cmpd_component_type
+
+instance CEnum.CEnum Heif_cmpd_component_type where
+
+  type CEnumZ Heif_cmpd_component_type = BG.CUInt
+
+  toCEnum = Heif_cmpd_component_type
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_cmpd_component_type"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_cmpd_component_type_monochrome")
+                                   , (1, BG.singleton "Heif_cmpd_component_type_Y")
+                                   , (2, BG.singleton "Heif_cmpd_component_type_Cb")
+                                   , (3, BG.singleton "Heif_cmpd_component_type_Cr")
+                                   , (4, BG.singleton "Heif_cmpd_component_type_red")
+                                   , (5, BG.singleton "Heif_cmpd_component_type_green")
+                                   , (6, BG.singleton "Heif_cmpd_component_type_blue")
+                                   , (7, BG.singleton "Heif_cmpd_component_type_alpha")
+                                   , (8, BG.singleton "Heif_cmpd_component_type_depth")
+                                   , (9, BG.singleton "Heif_cmpd_component_type_disparity")
+                                   , (10, BG.singleton "Heif_cmpd_component_type_palette")
+                                   , (11, BG.singleton "Heif_cmpd_component_type_filter_array")
+                                   , (12, BG.singleton "Heif_cmpd_component_type_padded")
+                                   , (13, BG.singleton "Heif_cmpd_component_type_cyan")
+                                   , (14, BG.singleton "Heif_cmpd_component_type_magenta")
+                                   , (15, BG.singleton "Heif_cmpd_component_type_yellow")
+                                   , (16, BG.singleton "Heif_cmpd_component_type_key_black")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_cmpd_component_type"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_cmpd_component_type"
+
+  isDeclared = CEnum.seqIsDeclared
+
+  mkDeclared = CEnum.seqMkDeclared
+
+instance CEnum.SequentialCEnum Heif_cmpd_component_type where
+
+  minDeclaredValue =
+    Heif_cmpd_component_type_monochrome
+
+  maxDeclaredValue = Heif_cmpd_component_type_key_black
+
+instance Show Heif_cmpd_component_type where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_cmpd_component_type where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_cmpd_component_type" Heif_cmpd_component_type ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_cmpd_component_type {unwrapHeif_cmpd_component_type = y1}
+      , BG.getField @"unwrapHeif_cmpd_component_type" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_cmpd_component_type" (BG.Ptr Heif_cmpd_component_type) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_cmpd_component_type")
+
+instance HasCField.HasCField Heif_cmpd_component_type "unwrapHeif_cmpd_component_type" where
+
+  type CFieldType Heif_cmpd_component_type "unwrapHeif_cmpd_component_type" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_cmpd_component_type_monochrome@
+
+    __defined at:__ @libheif\/heif_components.h 72:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_monochrome :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_monochrome = Heif_cmpd_component_type 0
+
+{-| __C declaration:__ @heif_cmpd_component_type_Y@
+
+    __defined at:__ @libheif\/heif_components.h 73:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_Y :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_Y = Heif_cmpd_component_type 1
+
+{-| __C declaration:__ @heif_cmpd_component_type_Cb@
+
+    __defined at:__ @libheif\/heif_components.h 74:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_Cb :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_Cb = Heif_cmpd_component_type 2
+
+{-| __C declaration:__ @heif_cmpd_component_type_Cr@
+
+    __defined at:__ @libheif\/heif_components.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_Cr :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_Cr = Heif_cmpd_component_type 3
+
+{-| __C declaration:__ @heif_cmpd_component_type_red@
+
+    __defined at:__ @libheif\/heif_components.h 76:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_red :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_red = Heif_cmpd_component_type 4
+
+{-| __C declaration:__ @heif_cmpd_component_type_green@
+
+    __defined at:__ @libheif\/heif_components.h 77:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_green :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_green = Heif_cmpd_component_type 5
+
+{-| __C declaration:__ @heif_cmpd_component_type_blue@
+
+    __defined at:__ @libheif\/heif_components.h 78:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_blue :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_blue = Heif_cmpd_component_type 6
+
+{-| __C declaration:__ @heif_cmpd_component_type_alpha@
+
+    __defined at:__ @libheif\/heif_components.h 79:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_alpha :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_alpha = Heif_cmpd_component_type 7
+
+{-| __C declaration:__ @heif_cmpd_component_type_depth@
+
+    __defined at:__ @libheif\/heif_components.h 80:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_depth :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_depth = Heif_cmpd_component_type 8
+
+{-| __C declaration:__ @heif_cmpd_component_type_disparity@
+
+    __defined at:__ @libheif\/heif_components.h 81:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_disparity :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_disparity = Heif_cmpd_component_type 9
+
+{-| __C declaration:__ @heif_cmpd_component_type_palette@
+
+    __defined at:__ @libheif\/heif_components.h 82:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_palette :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_palette = Heif_cmpd_component_type 10
+
+{-| __C declaration:__ @heif_cmpd_component_type_filter_array@
+
+    __defined at:__ @libheif\/heif_components.h 83:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_filter_array :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_filter_array = Heif_cmpd_component_type 11
+
+{-| __C declaration:__ @heif_cmpd_component_type_padded@
+
+    __defined at:__ @libheif\/heif_components.h 84:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_padded :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_padded = Heif_cmpd_component_type 12
+
+{-| __C declaration:__ @heif_cmpd_component_type_cyan@
+
+    __defined at:__ @libheif\/heif_components.h 85:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_cyan :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_cyan = Heif_cmpd_component_type 13
+
+{-| __C declaration:__ @heif_cmpd_component_type_magenta@
+
+    __defined at:__ @libheif\/heif_components.h 86:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_magenta :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_magenta = Heif_cmpd_component_type 14
+
+{-| __C declaration:__ @heif_cmpd_component_type_yellow@
+
+    __defined at:__ @libheif\/heif_components.h 87:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_yellow :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_yellow = Heif_cmpd_component_type 15
+
+{-| __C declaration:__ @heif_cmpd_component_type_key_black@
+
+    __defined at:__ @libheif\/heif_components.h 88:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_cmpd_component_type_key_black :: Heif_cmpd_component_type
+pattern Heif_cmpd_component_type_key_black = Heif_cmpd_component_type 16
+
+{-| __C declaration:__ @enum heif_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 49:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+newtype Heif_omaf_image_projection = Heif_omaf_image_projection
+  { unwrapHeif_omaf_image_projection :: BG.CUInt
+  }
+  deriving stock (Eq, BG.Generic, Ord)
+  deriving newtype (BG.HasFFIType)
+
+instance Marshal.StaticSize Heif_omaf_image_projection where
+
+  staticSizeOf = \_ -> (4 :: Int)
+
+  staticAlignment = \_ -> (4 :: Int)
+
+instance Marshal.ReadRaw Heif_omaf_image_projection where
+
+  readRaw =
+    \ptr0 ->
+          pure Heif_omaf_image_projection
+      <*> Marshal.readRawByteOff ptr0 (0 :: Int)
+
+instance Marshal.WriteRaw Heif_omaf_image_projection where
+
+  writeRaw =
+    \ptr0 ->
+      \s1 ->
+        case s1 of
+          Heif_omaf_image_projection unwrapHeif_omaf_image_projection2 ->
+            Marshal.writeRawByteOff ptr0 (0 :: Int) unwrapHeif_omaf_image_projection2
+
+deriving via Marshal.EquivStorable Heif_omaf_image_projection instance BG.Storable Heif_omaf_image_projection
+
+deriving via BG.CUInt instance BG.Prim Heif_omaf_image_projection
+
+instance CEnum.CEnum Heif_omaf_image_projection where
+
+  type CEnumZ Heif_omaf_image_projection = BG.CUInt
+
+  toCEnum = Heif_omaf_image_projection
+
+  fromCEnum =
+    BG.getField @"unwrapHeif_omaf_image_projection"
+
+  declaredValues =
+    \_ ->
+      CEnum.declaredValuesFromList [ (0, BG.singleton "Heif_omaf_image_projection_equirectangular")
+                                   , (1, BG.singleton "Heif_omaf_image_projection_cube_map")
+                                   , (255, BG.singleton "Heif_omaf_image_projection_flat")
+                                   ]
+
+  showsUndeclared =
+    CEnum.showsWrappedUndeclared "Heif_omaf_image_projection"
+
+  readPrecUndeclared =
+    CEnum.readPrecWrappedUndeclared "Heif_omaf_image_projection"
+
+instance Show Heif_omaf_image_projection where
+
+  showsPrec = CEnum.shows
+
+instance Read Heif_omaf_image_projection where
+
+  readPrec = CEnum.readPrec
+
+  readList = BG.readListDefault
+
+  readListPrec = BG.readListPrecDefault
+
+instance ( ty ~ BG.CUInt
+         ) => BG.CompatHasField.HasField "unwrapHeif_omaf_image_projection" Heif_omaf_image_projection ty where
+
+  hasField =
+    \x0 ->
+      ( \y1 ->
+          Heif_omaf_image_projection {unwrapHeif_omaf_image_projection = y1}
+      , BG.getField @"unwrapHeif_omaf_image_projection" x0
+      )
+
+instance ( ty ~ BG.CUInt
+         ) => BG.HasField "unwrapHeif_omaf_image_projection" (BG.Ptr Heif_omaf_image_projection) (BG.Ptr ty) where
+
+  getField =
+    HasCField.fromPtr (BG.Proxy @"unwrapHeif_omaf_image_projection")
+
+instance HasCField.HasCField Heif_omaf_image_projection "unwrapHeif_omaf_image_projection" where
+
+  type CFieldType Heif_omaf_image_projection "unwrapHeif_omaf_image_projection" =
+    BG.CUInt
+
+  offset# = \_ -> \_ -> 0
+
+{-| __C declaration:__ @heif_omaf_image_projection_equirectangular@
+
+    __defined at:__ @libheif\/heif_omaf.h 54:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_omaf_image_projection_equirectangular :: Heif_omaf_image_projection
+pattern Heif_omaf_image_projection_equirectangular = Heif_omaf_image_projection 0
+
+{-| __C declaration:__ @heif_omaf_image_projection_cube_map@
+
+    __defined at:__ @libheif\/heif_omaf.h 59:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_omaf_image_projection_cube_map :: Heif_omaf_image_projection
+pattern Heif_omaf_image_projection_cube_map = Heif_omaf_image_projection 1
+
+{-| __C declaration:__ @heif_omaf_image_projection_flat@
+
+    __defined at:__ @libheif\/heif_omaf.h 75:3@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+pattern Heif_omaf_image_projection_flat :: Heif_omaf_image_projection
+pattern Heif_omaf_image_projection_flat = Heif_omaf_image_projection 255
+
+-- __unique:__ @instance ToFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+foreign import ccall safe "wrapper" hs_bindgen_3afa1efa37aa74cc_base ::
+     (BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32)
+  -> IO (BG.FunPtr (BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32))
+
+-- __unique:__ @instance ToFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+hs_bindgen_3afa1efa37aa74cc ::
+     (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+  -> IO (BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status))
+hs_bindgen_3afa1efa37aa74cc =
+  \fun0 ->
+    fmap BG.castFunPtrFromFFIType (hs_bindgen_3afa1efa37aa74cc_base (BG.toFFIType fun0))
+
+-- __unique:__ @instance FromFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+foreign import ccall safe "dynamic" hs_bindgen_1b1da37f50011c80_base ::
+     BG.FunPtr (BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32)
+  -> BG.Int64 -> BG.Ptr BG.Void -> IO BG.Word32
+
+-- __unique:__ @instance FromFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)@
+hs_bindgen_1b1da37f50011c80 ::
+     BG.FunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status)
+  -> HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status
+hs_bindgen_1b1da37f50011c80 =
+  \funPtr0 ->
+    BG.fromFFIType (hs_bindgen_1b1da37f50011c80_base (BG.castFunPtrToFFIType funPtr0))
+
+instance BG.ToFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status) where
+
+  toFunPtr = hs_bindgen_3afa1efa37aa74cc
+
+instance BG.FromFunPtr (HsBindgen.Runtime.LibC.Int64 -> BG.Ptr BG.Void -> IO Heif_reader_grow_status) where
+
+  fromFunPtr = hs_bindgen_1b1da37f50011c80
diff --git a/src-wasm/Codec/HEIF/Bindings/Generated/FunPtr.hs b/src-wasm/Codec/HEIF/Bindings/Generated/FunPtr.hs
new file mode 100644
--- /dev/null
+++ b/src-wasm/Codec/HEIF/Bindings/Generated/FunPtr.hs
@@ -0,0 +1,8486 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.FunPtr
+    ( Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number_major
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number_minor
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_version_number_maintenance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_string_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_init
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_deinit
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_load_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_load_plugins
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_unload_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_plugin_directories
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_free_plugin_directories
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_register_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_register_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_register_decoder
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_colorspace
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_chroma_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_primary_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_primary_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_crop
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_extract_area
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_bits_per_pixel_range
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_channel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane_readonly2
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_plane2
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_scale_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_extend_to_size_fill_with_zero
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_decoding_warnings
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_decoding_warning
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_create
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_plane
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_plane_safe
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_extend_padding_to_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_set_defaults
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_ext_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_ext_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_color_conversion_options_ext_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_set_color_primaries
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_set_transfer_characteristics
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_set_matrix_coefficients
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_nclx_color_profile_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_mastering_display_colour_volume_decode
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_read_main_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_read_minor_version_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_fourcc_to_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_brand_to_fourcc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_has_compatible_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_list_compatible_brands
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_free_list_of_compatible_brands
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_file_mime_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_check_filetype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_has_compatible_filetype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_check_jpeg_filetype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_main_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_metadata_compression_method_supported
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_metadata_blocks
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_metadata_block_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_content_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_size
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_metadata_item_uri_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_exif_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_XMP_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_XMP_metadata2
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_generic_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_generic_uri_metadata
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_depth_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_depth_images
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_depth_image_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_depth_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_depth_representation_info_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_depth_image_representation_info
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_thumbnails
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_thumbnail_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_thumbnail
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_encode_thumbnail
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_assign_thumbnail
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_auxiliary_images
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_list_of_auxiliary_image_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_release_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_auxiliary_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_free_auxiliary_types
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_entity_groups
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_entity_groups_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_global_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_disabled_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_security_limits
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_maximum_image_size_limit
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_file
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_memory
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_memory_without_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_read_from_reader
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_number_of_top_level_images
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_is_top_level_image_ID
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_list_of_top_level_image_IDs
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_primary_image_ID
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_primary_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_image_handle
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_debug_dump_boxes_to_file
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_write_mini_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_write_to_file
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_write
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_have_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_get_compression_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supports_lossy_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supports_lossless_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_encoder
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_lossy_quality
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_lossless
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_logging_level
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_list_parameters
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_valid_integer_range
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_valid_integer_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_get_valid_string_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter_integer
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter_integer
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_integer_valid_range
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter_string
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter_string
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_string_valid_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_parameter_integer_valid_values
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_set_parameter
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_get_parameter
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_has_default
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_orientation_concat
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoding_options_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoding_options_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_encode_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_overlay_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_primary_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_major_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_compatible_brand
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_unif
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supportes_lossy_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_encoder_descriptor_supportes_lossless_compression
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_set_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_get_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_have_decoder_for_format
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoding_options_copy
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoding_options_free
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_get_decoder_descriptors
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_decode_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_release
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_is_primary_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_item_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_alpha_channel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_luma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_chroma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_preferred_decoding_colorspace
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_ispe_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_ispe_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_context
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_cmpd_components
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_cmpd_component_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_cmpd_component_type_uri
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_has_gimi_component_content_ids
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_image_tiling
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_grid_image_tile_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_decode_image_tile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_encode_grid
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_grid_image
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_context_add_image_tile
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_number_of_used_components
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_channel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_width
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_height
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_number_of_components
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_component_type
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_add_component
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint16_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint16
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_uint64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int8_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int8
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int16_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int16
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_int64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_float64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex32_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex32
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex64_readonly
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_component_complex64
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_handle_set_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.FunPtr.heif_image_set_omaf_image_projection
+    )
+  where
+
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.IsArray as IsA
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_c625d32f9024e570 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_6f0f2dc1ca16a761 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_major */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_49646ebce7736dc1 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number_major;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_minor */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_5efb9913a85458fc (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number_minor;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_maintenance */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_33900f1854455fa2 (void)) (void)"
+  , "{"
+  , "  return &heif_get_version_number_maintenance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_string_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5023e7e36a2931fd (void)) ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_string_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_init */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c1b0d15e5fbf7459 (void)) ("
+  , "  heif_init_params *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_init;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_deinit */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_d7a636c1be26e18e (void)) (void)"
+  , "{"
+  , "  return &heif_deinit;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f0e89c0f64a2bfe9 (void)) ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_load_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugins */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_8667360af91ea736 (void)) ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  signed int *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_load_plugins;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_unload_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_d9c7cda5fa23d9da (void)) ("
+  , "  heif_plugin_info const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_unload_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_plugin_directories */"
+  , "__attribute__ ((const))"
+  , "char const *const *(*hs_bindgen_4b420f655c4b044f (void)) (void)"
+  , "{"
+  , "  return &heif_get_plugin_directories;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_plugin_directories */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c9dc77b0e04f1a94 (void)) ("
+  , "  char const *const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_free_plugin_directories;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f56aad029d61bb2f (void)) ("
+  , "  heif_decoder_plugin const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_register_decoder_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_encoder_plugin */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f9fa4387373140b1 (void)) ("
+  , "  heif_encoder_plugin const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_register_encoder_plugin;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c7c012cbd7e4135c (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_decoder_plugin const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_register_decoder;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_colorspace */"
+  , "__attribute__ ((const))"
+  , "heif_colorspace (*hs_bindgen_e073d67d79caf9cf (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_colorspace;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_chroma_format */"
+  , "__attribute__ ((const))"
+  , "heif_chroma (*hs_bindgen_c9aabf89051d1758 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_chroma_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_6e6e2b18117257e0 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_e4232c0e2e8deb5c (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ad0a46812ed66955 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_primary_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7eefbabd5f9b98b6 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_primary_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_crop */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_454755c015cd191e (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_crop;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extract_area */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_137ea4eb4c1dbebf (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_image **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_image_extract_area;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ab02493a34d79677 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel_range */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d2e302dd2ee8f950 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_bits_per_pixel_range;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_channel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_5b15857d396cae51 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_channel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly */"
+  , "__attribute__ ((const))"
+  , "uint8_t const *(*hs_bindgen_a293c99564ffbee1 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane */"
+  , "__attribute__ ((const))"
+  , "uint8_t *(*hs_bindgen_1e54091d31894195 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly2 */"
+  , "__attribute__ ((const))"
+  , "uint8_t const *(*hs_bindgen_3ac7ef05f949468d (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane_readonly2;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane2 */"
+  , "__attribute__ ((const))"
+  , "uint8_t *(*hs_bindgen_b3d879307b0ecfef (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_plane2;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_scale_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_91b44b593d8b2e0d (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_image **arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  heif_scaling_options const *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_scale_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_to_size_fill_with_zero */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_39581edbcefe9e11 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_extend_to_size_fill_with_zero;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_decoding_warnings */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_052f3910ccd5c18c (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_decoding_warnings;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_decoding_warning */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_77d12dd9eb75d762 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_error arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_decoding_warning;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e57b35874b9c2ef5 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_b5b62770d080f1eb (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5efdd32e4d856855 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_cc8120096e554016 (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_create */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e527bfc712439944 (void)) ("
+  , "  signed int arg1,"
+  , "  signed int arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_image **arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_create;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_bbfa602c16d0e115 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_plane;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane_safe */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_db45cbabffee2123 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_security_limits const *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_plane_safe;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_premultiplied_alpha */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5ca559cd3abef76b (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_premultiplied_alpha;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_is_premultiplied_alpha */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_dfd40ac51dd90bdf (void)) ("
+  , "  heif_image *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_is_premultiplied_alpha;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_padding_to_size */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9fb9a1c5713d955a (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_extend_padding_to_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_set_defaults */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_6f16968893d84864 (void)) ("
+  , "  heif_color_conversion_options *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_color_conversion_options_set_defaults;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_color_conversion_options_ext *(*hs_bindgen_64bcbbba230b33f1 (void)) (void)"
+  , "{"
+  , "  return &heif_color_conversion_options_ext_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_copy */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_9f16886e93804ee2 (void)) ("
+  , "  heif_color_conversion_options_ext *arg1,"
+  , "  heif_color_conversion_options_ext const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_color_conversion_options_ext_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_2711d46fed5cbeb2 (void)) ("
+  , "  heif_color_conversion_options_ext *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_color_conversion_options_ext_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_color_profile_type */"
+  , "__attribute__ ((const))"
+  , "heif_color_profile_type (*hs_bindgen_e64f44dae6e663ed (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_color_profile_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile_size */"
+  , "__attribute__ ((const))"
+  , "size_t (*hs_bindgen_ed69fd2400ee84ba (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_raw_color_profile_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile */"
+  , "__attribute__ ((const))"
+  , "struct heif_error (*hs_bindgen_d8c99aa8c6e5a830 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  void *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_raw_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_color_primaries */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_4614c65e54f21413 (void)) ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_set_color_primaries;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_transfer_characteristics */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_116e28f3db0d4120 (void)) ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_set_transfer_characteristics;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_matrix_coefficients */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_19c22d40dc00a9c9 (void)) ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_set_matrix_coefficients;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nclx_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_b3b5fb2096a6f40b (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_color_profile_nclx **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_nclx_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_color_profile_nclx *(*hs_bindgen_a20e40e2206679a9 (void)) (void)"
+  , "{"
+  , "  return &heif_nclx_color_profile_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_699d69b45a1cb468 (void)) ("
+  , "  heif_color_profile_nclx *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_nclx_color_profile_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_color_profile_type */"
+  , "__attribute__ ((const))"
+  , "heif_color_profile_type (*hs_bindgen_409cc3435b1a7e31 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_color_profile_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile_size */"
+  , "__attribute__ ((const))"
+  , "size_t (*hs_bindgen_2723d50c493f3f61 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_raw_color_profile_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e92550f12c6d8fb0 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  void *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_raw_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nclx_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_0988df78a76b5973 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_color_profile_nclx **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_nclx_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_raw_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_1cbc106cb4bd0c43 (void)) ("
+  , "  heif_image *arg1,"
+  , "  char const *arg2,"
+  , "  void const *arg3,"
+  , "  size_t const arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_raw_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nclx_color_profile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7aa510c633572c35 (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_color_profile_nclx const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_nclx_color_profile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_content_light_level */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_db973d1a2a00a405 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_content_light_level */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ff42d34b21f3a2ce (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_content_light_level */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_530d71005a426553 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_content_light_level */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_5d0d43fee97f75e5 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_content_light_level */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_2c51fa25a85ab816 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_content_light_level */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_75e4bb9edfe7cd9f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_content_light_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_46bc79c600610be0 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_504e9917f645ef88 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_4a2fb9e8f85d6de1 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_95d43adae491456f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_290787e53e2b60b6 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_mastering_display_colour_volume */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5fe4f8ca0e66f87f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_mastering_display_colour_volume;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_80383eae4f658d98 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d98bfd626a7d6830 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d77001407b8f6d06 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_23814d0fca44d5da (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_71575ae4017a355d (void)) ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_ambient_viewing_environment */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c312bdda2671ccdc (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_ambient_viewing_environment;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_e7d75561cc58be41 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_has_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_ac6ca5887cc19e74 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_3a5d53bf827d8580 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_8478e7753942715a (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_c20c28632ce30863 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_nominal_diffuse_white_luminance */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_101384e10d3eb9f6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_nominal_diffuse_white_luminance;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_mastering_display_colour_volume_decode */"
+  , "__attribute__ ((const))"
+  , "struct heif_error (*hs_bindgen_bd18c4f597c6733a (void)) ("
+  , "  heif_mastering_display_colour_volume const *arg1,"
+  , "  heif_decoded_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_mastering_display_colour_volume_decode;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_main_brand */"
+  , "__attribute__ ((const))"
+  , "heif_brand2 (*hs_bindgen_2d53f48e29c79962 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_read_main_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_minor_version_brand */"
+  , "__attribute__ ((const))"
+  , "heif_brand2 (*hs_bindgen_d44a12ee72bb9c2e (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_read_minor_version_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_fourcc_to_brand */"
+  , "__attribute__ ((const))"
+  , "heif_brand2 (*hs_bindgen_a65b895080eaa5da (void)) ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_fourcc_to_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_brand_to_fourcc */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_b67f7ec53fb11880 (void)) ("
+  , "  heif_brand2 arg1,"
+  , "  char *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_brand_to_fourcc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_brand */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_156cb2560432b078 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_has_compatible_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_list_compatible_brands */"
+  , "__attribute__ ((const))"
+  , "struct heif_error (*hs_bindgen_b8599f182b75ac09 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_brand2 **arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_list_compatible_brands;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_list_of_compatible_brands */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_58abda0a8161661e (void)) ("
+  , "  heif_brand2 *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_free_list_of_compatible_brands;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_file_mime_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_c28ed4b8a33c8c55 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_get_file_mime_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_filetype */"
+  , "__attribute__ ((const))"
+  , "enum heif_filetype_result (*hs_bindgen_0fe4c4f41f0c7dc4 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_check_filetype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_filetype */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_d4d9d9d8a49ecb76 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_has_compatible_filetype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_jpeg_filetype */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_772865916a7ca5b0 (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_check_jpeg_filetype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_main_brand */"
+  , "__attribute__ ((const))"
+  , "enum heif_brand (*hs_bindgen_88607fe3b227821c (void)) ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_main_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_metadata_compression_method_supported */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_bc74e7adb57c426e (void)) ("
+  , "  enum heif_metadata_compression arg1"
+  , ")"
+  , "{"
+  , "  return &heif_metadata_compression_method_supported;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_metadata_blocks */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_e0549656d912a02f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_metadata_blocks;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_metadata_block_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7704c832da7f6498 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_metadata_block_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_6a47d662d02a1849 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_content_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_ff3375cb079c2c8c (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_content_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_size */"
+  , "__attribute__ ((const))"
+  , "size_t (*hs_bindgen_8f416d9d0b388a20 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_size;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f28b5d476cc0344d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  void *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_item_uri_type */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_3de552206e29c05d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_metadata_item_uri_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_exif_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_5a7514f5b16eac4c (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_exif_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_3a07a46632c07914 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_XMP_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata2 */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_a68d252d2c832294 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  enum heif_metadata_compression arg5"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_XMP_metadata2;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_619dad01eb9c6d46 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  char const *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_generic_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_uri_metadata */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_58d33e372b6c6eae (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  heif_item_id *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_generic_uri_metadata;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_depth_image */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3cd06e15607887df (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_depth_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_depth_images */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_aa3619e2616c31b9 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_depth_images;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_depth_image_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_c7753ca6962a462d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_depth_image_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c1ab9b65fc984e98 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_depth_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_depth_representation_info_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_bfa498ceb1f388eb (void)) ("
+  , "  heif_depth_representation_info const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_depth_representation_info_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_representation_info */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_f7def4edb675f3a7 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_depth_representation_info const **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_depth_image_representation_info;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_thumbnails */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_388a83c522945b96 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_thumbnails;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_thumbnail_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_c9977cfc42d63a17 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_thumbnail_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_thumbnail */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7b4335dfc28e8e80 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_thumbnail;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_thumbnail */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_492f9a0d3f555649 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_encoder *arg4,"
+  , "  heif_encoding_options const *arg5,"
+  , "  signed int arg6,"
+  , "  heif_image_handle **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_context_encode_thumbnail;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_assign_thumbnail */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_d6beebdf16f8801e (void)) ("
+  , "  struct heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  heif_image_handle const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_assign_thumbnail;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_auxiliary_images */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_fbf5259f8601a805 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_auxiliary_images;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_auxiliary_image_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_52a5c3a1d8bf248a (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_list_of_auxiliary_image_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_type */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_2806604f6185b8f8 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_auxiliary_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release_auxiliary_type */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c6d7022e030cb190 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_release_auxiliary_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_3d5ece2e0e4e63a9 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_auxiliary_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_free_auxiliary_types */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e653c638946083c6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_free_auxiliary_types;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_entity_groups */"
+  , "__attribute__ ((const))"
+  , "heif_entity_group *(*hs_bindgen_631e87ff99030866 (void)) ("
+  , "  heif_context const *arg1,"
+  , "  uint32_t arg2,"
+  , "  heif_item_id arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_entity_groups;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_entity_groups_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_dff5ea5157033446 (void)) ("
+  , "  heif_entity_group *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_entity_groups_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_global_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_security_limits const *(*hs_bindgen_513834deee887311 (void)) (void)"
+  , "{"
+  , "  return &heif_get_global_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_disabled_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_security_limits const *(*hs_bindgen_9841ea4e972c1a98 (void)) (void)"
+  , "{"
+  , "  return &heif_get_disabled_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_security_limits *(*hs_bindgen_79af356ea84ef299 (void)) ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_security_limits */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_79e7cc69a856ca88 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_security_limits const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_security_limits;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_maximum_image_size_limit */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_70c7f35fa6d1722f (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_maximum_image_size_limit;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_context *(*hs_bindgen_bd908a73a9cd1c97 (void)) (void)"
+  , "{"
+  , "  return &heif_context_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_7e7ac4562d12dc38 (void)) ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_file */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7b3d06c1227d3049 (void)) ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_reading_options const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_file;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_fd7f2a7e1900e79b (void)) ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_memory;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory_without_copy */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_ead5dd2b26474984 (void)) ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_memory_without_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_reader */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_46205cdd2b194712 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_reader const *arg2,"
+  , "  void *arg3,"
+  , "  heif_reading_options const *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_context_read_from_reader;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_number_of_top_level_images */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7d9f8f6a11d1d0b3 (void)) ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_number_of_top_level_images;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_is_top_level_image_ID */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_8c9ac942d92215db (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_is_top_level_image_ID;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_list_of_top_level_image_IDs */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_8300165269c133fb (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_list_of_top_level_image_IDs;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_ID */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_0d98fd3ca84ab54a (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_primary_image_ID;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_960524c654a2bcef (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_primary_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_image_handle */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_398d616a73d2c66e (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_image_handle;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_debug_dump_boxes_to_file */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_8a216f7524a20aca (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_debug_dump_boxes_to_file;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_write_mini_format */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_15394ba4caf334ce (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_write_mini_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write_to_file */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_f73779d349ac09bf (void)) ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_write_to_file;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c9c017704fa40d19 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_writer *arg2,"
+  , "  void *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_write;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_encoder_for_format */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_19218fb783c96539 (void)) ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return &heif_have_encoder_for_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_encoder_descriptors */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_49fc5cfaef4436f7 (void)) ("
+  , "  heif_compression_format arg1,"
+  , "  char const *arg2,"
+  , "  heif_encoder_descriptor const **arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_get_encoder_descriptors;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_cddd49c618fa6467 (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_id_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_08451a95e7fb6e4d (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_get_id_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_compression_format */"
+  , "__attribute__ ((const))"
+  , "heif_compression_format (*hs_bindgen_e5339b28bc83fbca (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_get_compression_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossy_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7ad6908eba03875a (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supports_lossy_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossless_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_ae06a426df892191 (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supports_lossless_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_007a504ee5520689 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_encoder_descriptor const *arg2,"
+  , "  heif_encoder **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_encoder;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_for_format */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9f20d0bc6d1e9792 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  heif_encoder **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_encoder_for_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e2c3d8f3b52f1fe3 (void)) ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_ee9152d12b81ac2d (void)) ("
+  , "  heif_encoder const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossy_quality */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_19895ed41764990f (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_lossy_quality;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossless */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9c9779dea220b374 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_lossless;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_logging_level */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_964eca1706d5e05d (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_logging_level;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_list_parameters */"
+  , "__attribute__ ((const))"
+  , "heif_encoder_parameter const *const *(*hs_bindgen_b1199cd8648209be (void)) ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_list_parameters;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_d6e627b5fca93233 (void)) ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_type */"
+  , "__attribute__ ((const))"
+  , "enum heif_encoder_parameter_type (*hs_bindgen_980079513f87c118 (void)) ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_range */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_6a3070253dfc382e (void)) ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_valid_integer_range;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_067b5b207b483c5d (void)) ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int const **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_valid_integer_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_string_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_4402c7b710a2e293 (void)) ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  char const *const **arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_get_valid_string_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_integer */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e8b5b676e57560d7 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter_integer;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_integer */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c44ab08992218d13 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter_integer;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_range */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9598d3b74fd783cb (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_integer_valid_range;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_boolean */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7db9099ac6d6f5b1 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter_boolean;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_boolean */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_9f1955202d334a10 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter_boolean;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_string */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_b2607e571c92a618 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter_string;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_string */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_a95cafa3230d5da7 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter_string;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_string_valid_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_ba4465c08b4cf0a2 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *const **arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_string_valid_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_values */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_623e45d55c671d82 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int *arg7,"
+  , "  signed int const **arg8"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_parameter_integer_valid_values;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_bd86a80de889a4f4 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_set_parameter;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_72101d51afa9609b (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_get_parameter;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_has_default */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_26a34da2ac618ec0 (void)) ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_has_default;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_orientation_concat */"
+  , "__attribute__ ((const))"
+  , "heif_orientation (*hs_bindgen_c0dd2a0c657131aa (void)) ("
+  , "  heif_orientation arg1,"
+  , "  heif_orientation arg2"
+  , ")"
+  , "{"
+  , "  return &heif_orientation_concat;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_encoding_options *(*hs_bindgen_28dbaae103570ff4 (void)) (void)"
+  , "{"
+  , "  return &heif_encoding_options_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_copy */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_e7b5455adebcef43 (void)) ("
+  , "  heif_encoding_options *arg1,"
+  , "  heif_encoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_encoding_options_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_787984e1e413ead9 (void)) ("
+  , "  heif_encoding_options *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoding_options_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_610d77f41f92fba0 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_encoder *arg3,"
+  , "  heif_encoding_options const *arg4,"
+  , "  heif_image_handle **arg5"
+  , ")"
+  , "{"
+  , "  return &heif_context_encode_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_overlay_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_b136dae560c28087 (void)) ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_item_id const *arg5,"
+  , "  int32_t *arg6,"
+  , "  uint16_t const *arg7,"
+  , "  heif_image_handle **arg8"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_overlay_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_primary_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_82f06b9fbe305204 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_primary_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_major_brand */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_4f09902dfe4716a2 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_major_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_compatible_brand */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c7a3ced56fa71bcc (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_compatible_brand;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_unif */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_540033bf7a81642b (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_unif;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossy_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_2e1af2c079c4bdcb (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supportes_lossy_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossless_compression */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_0872f4049dc6adda (void)) ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_encoder_descriptor_supportes_lossless_compression;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_descriptors */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_2fc974173395e821 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  char const *arg3,"
+  , "  heif_encoder_descriptor const **arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_encoder_descriptors;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_max_decoding_threads */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_5e62b65c99d23407 (void)) ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return &heif_context_set_max_decoding_threads;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_max_decoding_threads */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3b4e8316def8a237 (void)) ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_context_get_max_decoding_threads;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_decoder_for_format */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3daa6cca356665b6 (void)) ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return &heif_have_decoder_for_format;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_alloc */"
+  , "__attribute__ ((const))"
+  , "heif_decoding_options *(*hs_bindgen_9a50b249bd540166 (void)) (void)"
+  , "{"
+  , "  return &heif_decoding_options_alloc;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_copy */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_32da465efe73fcdb (void)) ("
+  , "  heif_decoding_options *arg1,"
+  , "  heif_decoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_decoding_options_copy;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_free */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_52712d76ab537988 (void)) ("
+  , "  heif_decoding_options *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_decoding_options_free;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_decoder_descriptors */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_0f017f38829ac8dd (void)) ("
+  , "  heif_compression_format arg1,"
+  , "  heif_decoder_descriptor const **arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return &heif_get_decoder_descriptors;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_3db1040f1533c36e (void)) ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_decoder_descriptor_get_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_id_name */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_7b37485a305012c6 (void)) ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_decoder_descriptor_get_id_name;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decode_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_979d124ef42ec5cf (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_decode_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_f5cb46c43b851a0a (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_release;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_primary_image */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_9d6025e4141c8268 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_is_primary_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_item_id */"
+  , "__attribute__ ((const))"
+  , "heif_item_id (*hs_bindgen_4f10cdca13968c49 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_item_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_fe94688c878539a4 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_3b679516a521f7e3 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_alpha_channel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_4a7731dc45dcb737 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_alpha_channel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_premultiplied_alpha */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_59754eef2ee882b9 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_is_premultiplied_alpha;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_luma_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_f9d7480524d63f18 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_luma_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_chroma_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_bb5d1684ae3d8627 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_chroma_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_preferred_decoding_colorspace */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_4494944c3b2862bd (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_colorspace *arg2,"
+  , "  heif_chroma *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_preferred_decoding_colorspace;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_width */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_d49b3c605c71337e (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_ispe_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_height */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_2162a39f4c12630b (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_ispe_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_pixel_aspect_ratio */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_723ac84409ddbfbf (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_pixel_aspect_ratio;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_context */"
+  , "__attribute__ ((const))"
+  , "heif_context *(*hs_bindgen_a4854bf4bce1329e (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_context;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_content_id */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_ec464a481e6bf7eb (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_gimi_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_content_id */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_45b87b154ffab31e (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_gimi_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_cmpd_components */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_3f1f496bd459f7d1 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_cmpd_components;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type */"
+  , "__attribute__ ((const))"
+  , "uint16_t (*hs_bindgen_30689ff6fff118a6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_cmpd_component_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type_uri */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_e8528f21f6d1c6e1 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_cmpd_component_type_uri;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_gimi_component_content_ids */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_cd11e257d97813a3 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_has_gimi_component_content_ids;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_component_content_id */"
+  , "__attribute__ ((const))"
+  , "char const *(*hs_bindgen_82b03ca2c8baca6c (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_gimi_component_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_component_content_id */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_8e6048a2e91cf20b (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_gimi_component_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_image_tiling */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_c72c6e6de065492e (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  struct heif_image_tiling *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_image_tiling;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_grid_image_tile_id */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_dbdaf29e829a9876 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_item_id *arg5"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_grid_image_tile_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_decode_image_tile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_699735c377474463 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  uint32_t arg6,"
+  , "  uint32_t arg7"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_decode_image_tile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_grid */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_7caea6543ead81e2 (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image **arg2,"
+  , "  uint16_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_encoder *arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_context_encode_grid;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_grid_image */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_2cce0ce4f2f029a8 (void)) ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_grid_image;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_image_tile */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_65b0546b14ab11ca (void)) ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_image const *arg5,"
+  , "  heif_encoder *arg6"
+  , ")"
+  , "{"
+  , "  return &heif_context_add_image_tile;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_number_of_used_components */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_cccb6b24e80c7598 (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_number_of_used_components;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_used_component_ids */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_b2a27aa5ab429ee9 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_used_component_ids;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_channel */"
+  , "__attribute__ ((const))"
+  , "heif_channel (*hs_bindgen_51621589bc6d7870 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_channel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_width */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_844ddc17a3c931b4 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_width;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_height */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_1fa307e24407a0f7 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_height;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_fa65f60ea3112425 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_type */"
+  , "__attribute__ ((const))"
+  , "uint16_t (*hs_bindgen_500397f4997a0fa4 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_datatype */"
+  , "__attribute__ ((const))"
+  , "heif_component_datatype (*hs_bindgen_b3718485664aa5c1 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_datatype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_components */"
+  , "__attribute__ ((const))"
+  , "uint32_t (*hs_bindgen_313b35060d1e5135 (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_number_of_components;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_used_component_ids */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_3d6d506be66d3a5d (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_used_component_ids;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_type */"
+  , "__attribute__ ((const))"
+  , "uint16_t (*hs_bindgen_2a9b81acde526f2f (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_component_type;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_bits_per_pixel */"
+  , "__attribute__ ((const))"
+  , "signed int (*hs_bindgen_7114af07e418dc15 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_component_bits_per_pixel;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_datatype */"
+  , "__attribute__ ((const))"
+  , "heif_component_datatype (*hs_bindgen_37ac5fdd4a5313c6 (void)) ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_component_datatype;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_component */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_1fdd576f0a532dd8 (void)) ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_component_datatype arg5,"
+  , "  signed int arg6,"
+  , "  uint32_t *arg7"
+  , ")"
+  , "{"
+  , "  return &heif_image_add_component;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_readonly */"
+  , "__attribute__ ((const))"
+  , "uint8_t const *(*hs_bindgen_b887cc6f13914d9f (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component */"
+  , "__attribute__ ((const))"
+  , "uint8_t *(*hs_bindgen_d0fb2e8c6b555a5f (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16_readonly */"
+  , "__attribute__ ((const))"
+  , "uint16_t const *(*hs_bindgen_f2584f6738c6a3ea (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint16_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16 */"
+  , "__attribute__ ((const))"
+  , "uint16_t *(*hs_bindgen_e7308ea5505ed9aa (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint16;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32_readonly */"
+  , "__attribute__ ((const))"
+  , "uint32_t const *(*hs_bindgen_1df9b5a9909389e5 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32 */"
+  , "__attribute__ ((const))"
+  , "uint32_t *(*hs_bindgen_c256aea9f44c576a (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64_readonly */"
+  , "__attribute__ ((const))"
+  , "uint64_t const *(*hs_bindgen_49af5aabed64b179 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64 */"
+  , "__attribute__ ((const))"
+  , "uint64_t *(*hs_bindgen_c68cd4eb77fcda90 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_uint64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8_readonly */"
+  , "__attribute__ ((const))"
+  , "int8_t const *(*hs_bindgen_430e6a5279a8eb49 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int8_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8 */"
+  , "__attribute__ ((const))"
+  , "int8_t *(*hs_bindgen_2405d11fd23fb924 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int8;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16_readonly */"
+  , "__attribute__ ((const))"
+  , "int16_t const *(*hs_bindgen_c938737756603ecb (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int16_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16 */"
+  , "__attribute__ ((const))"
+  , "int16_t *(*hs_bindgen_4bd5f9edeeb4a65f (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int16;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32_readonly */"
+  , "__attribute__ ((const))"
+  , "int32_t const *(*hs_bindgen_cd7e0a4240e9ab65 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32 */"
+  , "__attribute__ ((const))"
+  , "int32_t *(*hs_bindgen_8e14a238fb4bdb2f (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64_readonly */"
+  , "__attribute__ ((const))"
+  , "int64_t const *(*hs_bindgen_8208ed7cda7cd335 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64 */"
+  , "__attribute__ ((const))"
+  , "int64_t *(*hs_bindgen_845006cd5c3d5175 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_int64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32_readonly */"
+  , "__attribute__ ((const))"
+  , "float const *(*hs_bindgen_a342a573d33f4eef (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32 */"
+  , "__attribute__ ((const))"
+  , "float *(*hs_bindgen_1d22608c8fd3d1cd (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64_readonly */"
+  , "__attribute__ ((const))"
+  , "double const *(*hs_bindgen_9a6ea0b8cce5e1a4 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64 */"
+  , "__attribute__ ((const))"
+  , "double *(*hs_bindgen_8964541966e9204e (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_float64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32_readonly */"
+  , "__attribute__ ((const))"
+  , "heif_complex32 const *(*hs_bindgen_11476314a2836a53 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex32_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32 */"
+  , "__attribute__ ((const))"
+  , "heif_complex32 *(*hs_bindgen_66fc2cecd8106650 (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex32;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64_readonly */"
+  , "__attribute__ ((const))"
+  , "heif_complex64 const *(*hs_bindgen_d60d5ecfd6455d28 (void)) ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex64_readonly;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64 */"
+  , "__attribute__ ((const))"
+  , "heif_complex64 *(*hs_bindgen_e96e94fa783df07c (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_component_complex64;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_gimi_component_content_id */"
+  , "__attribute__ ((const))"
+  , "heif_error (*hs_bindgen_e51068abbd490a0e (void)) ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_gimi_component_content_id;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "heif_omaf_image_projection (*hs_bindgen_0f97f63c89f3cfea (void)) ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_get_omaf_image_projection;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_6fbccb1e4f1b88f8 (void)) ("
+  , "  heif_image_handle *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_handle_set_omaf_image_projection;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "heif_omaf_image_projection (*hs_bindgen_c3044c458d0dafed (void)) ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return &heif_image_get_omaf_image_projection;"
+  , "}"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_omaf_image_projection */"
+  , "__attribute__ ((const))"
+  , "void (*hs_bindgen_c9668dd5bc64b2fe (void)) ("
+  , "  heif_image *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  return &heif_image_set_omaf_image_projection;"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version@
+foreign import ccall unsafe "hs_bindgen_c625d32f9024e570" hs_bindgen_c625d32f9024e570_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version@
+hs_bindgen_c625d32f9024e570 :: IO (BG.FunPtr (IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_c625d32f9024e570 =
+  BG.fromFFIType hs_bindgen_c625d32f9024e570_base
+
+{-# NOINLINE heif_get_version #-}
+{-| __C declaration:__ @heif_get_version@
+
+    __defined at:__ @libheif\/heif_library.h 72:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version :: BG.FunPtr (IO (PtrConst.PtrConst BG.CChar))
+heif_get_version =
+  BG.unsafePerformIO hs_bindgen_c625d32f9024e570
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number@
+foreign import ccall unsafe "hs_bindgen_6f0f2dc1ca16a761" hs_bindgen_6f0f2dc1ca16a761_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number@
+hs_bindgen_6f0f2dc1ca16a761 :: IO (BG.FunPtr (IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_6f0f2dc1ca16a761 =
+  BG.fromFFIType hs_bindgen_6f0f2dc1ca16a761_base
+
+{-# NOINLINE heif_get_version_number #-}
+{-| __C declaration:__ @heif_get_version_number@
+
+    __defined at:__ @libheif\/heif_library.h 76:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number :: BG.FunPtr (IO HsBindgen.Runtime.LibC.Word32)
+heif_get_version_number =
+  BG.unsafePerformIO hs_bindgen_6f0f2dc1ca16a761
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_major@
+foreign import ccall unsafe "hs_bindgen_49646ebce7736dc1" hs_bindgen_49646ebce7736dc1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_major@
+hs_bindgen_49646ebce7736dc1 :: IO (BG.FunPtr (IO BG.CInt))
+hs_bindgen_49646ebce7736dc1 =
+  BG.fromFFIType hs_bindgen_49646ebce7736dc1_base
+
+{-# NOINLINE heif_get_version_number_major #-}
+{-| __C declaration:__ @heif_get_version_number_major@
+
+    __defined at:__ @libheif\/heif_library.h 79:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_major :: BG.FunPtr (IO BG.CInt)
+heif_get_version_number_major =
+  BG.unsafePerformIO hs_bindgen_49646ebce7736dc1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_minor@
+foreign import ccall unsafe "hs_bindgen_5efb9913a85458fc" hs_bindgen_5efb9913a85458fc_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_minor@
+hs_bindgen_5efb9913a85458fc :: IO (BG.FunPtr (IO BG.CInt))
+hs_bindgen_5efb9913a85458fc =
+  BG.fromFFIType hs_bindgen_5efb9913a85458fc_base
+
+{-# NOINLINE heif_get_version_number_minor #-}
+{-| __C declaration:__ @heif_get_version_number_minor@
+
+    __defined at:__ @libheif\/heif_library.h 81:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_minor :: BG.FunPtr (IO BG.CInt)
+heif_get_version_number_minor =
+  BG.unsafePerformIO hs_bindgen_5efb9913a85458fc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_maintenance@
+foreign import ccall unsafe "hs_bindgen_33900f1854455fa2" hs_bindgen_33900f1854455fa2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_version_number_maintenance@
+hs_bindgen_33900f1854455fa2 :: IO (BG.FunPtr (IO BG.CInt))
+hs_bindgen_33900f1854455fa2 =
+  BG.fromFFIType hs_bindgen_33900f1854455fa2_base
+
+{-# NOINLINE heif_get_version_number_maintenance #-}
+{-| __C declaration:__ @heif_get_version_number_maintenance@
+
+    __defined at:__ @libheif\/heif_library.h 83:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_maintenance :: BG.FunPtr (IO BG.CInt)
+heif_get_version_number_maintenance =
+  BG.unsafePerformIO hs_bindgen_33900f1854455fa2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_string_release@
+foreign import ccall unsafe "hs_bindgen_5023e7e36a2931fd" hs_bindgen_5023e7e36a2931fd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_string_release@
+hs_bindgen_5023e7e36a2931fd :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ()))
+hs_bindgen_5023e7e36a2931fd =
+  BG.fromFFIType hs_bindgen_5023e7e36a2931fd_base
+
+{-# NOINLINE heif_string_release #-}
+{-| __C declaration:__ @heif_string_release@
+
+    __defined at:__ @libheif\/heif_library.h 100:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_string_release :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO ())
+heif_string_release =
+  BG.unsafePerformIO hs_bindgen_5023e7e36a2931fd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_init@
+foreign import ccall unsafe "hs_bindgen_c1b0d15e5fbf7459" hs_bindgen_c1b0d15e5fbf7459_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_init@
+hs_bindgen_c1b0d15e5fbf7459 :: IO (BG.FunPtr (BG.Ptr Heif_init_params -> IO Heif_error))
+hs_bindgen_c1b0d15e5fbf7459 =
+  BG.fromFFIType hs_bindgen_c1b0d15e5fbf7459_base
+
+{-# NOINLINE heif_init #-}
+{-| __C declaration:__ @heif_init@
+
+    __defined at:__ @libheif\/heif_library.h 133:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_init :: BG.FunPtr (BG.Ptr Heif_init_params -> IO Heif_error)
+heif_init =
+  BG.unsafePerformIO hs_bindgen_c1b0d15e5fbf7459
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_deinit@
+foreign import ccall unsafe "hs_bindgen_d7a636c1be26e18e" hs_bindgen_d7a636c1be26e18e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_deinit@
+hs_bindgen_d7a636c1be26e18e :: IO (BG.FunPtr (IO ()))
+hs_bindgen_d7a636c1be26e18e =
+  BG.fromFFIType hs_bindgen_d7a636c1be26e18e_base
+
+{-# NOINLINE heif_deinit #-}
+{-| __C declaration:__ @heif_deinit@
+
+    __defined at:__ @libheif\/heif_library.h 148:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_deinit :: BG.FunPtr (IO ())
+heif_deinit =
+  BG.unsafePerformIO hs_bindgen_d7a636c1be26e18e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugin@
+foreign import ccall unsafe "hs_bindgen_f0e89c0f64a2bfe9" hs_bindgen_f0e89c0f64a2bfe9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugin@
+hs_bindgen_f0e89c0f64a2bfe9 :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> IO Heif_error))
+hs_bindgen_f0e89c0f64a2bfe9 =
+  BG.fromFFIType hs_bindgen_f0e89c0f64a2bfe9_base
+
+{-# NOINLINE heif_load_plugin #-}
+{-| __C declaration:__ @heif_load_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 170:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugin :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> IO Heif_error)
+heif_load_plugin =
+  BG.unsafePerformIO hs_bindgen_f0e89c0f64a2bfe9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugins@
+foreign import ccall unsafe "hs_bindgen_8667360af91ea736" hs_bindgen_8667360af91ea736_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_load_plugins@
+hs_bindgen_8667360af91ea736 :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> BG.Ptr BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_8667360af91ea736 =
+  BG.fromFFIType hs_bindgen_8667360af91ea736_base
+
+{-# NOINLINE heif_load_plugins #-}
+{-| __C declaration:__ @heif_load_plugins@
+
+    __defined at:__ @libheif\/heif_library.h 173:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugins :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info) -> BG.Ptr BG.CInt -> BG.CInt -> IO Heif_error)
+heif_load_plugins =
+  BG.unsafePerformIO hs_bindgen_8667360af91ea736
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_unload_plugin@
+foreign import ccall unsafe "hs_bindgen_d9c7cda5fa23d9da" hs_bindgen_d9c7cda5fa23d9da_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_unload_plugin@
+hs_bindgen_d9c7cda5fa23d9da :: IO (BG.FunPtr (PtrConst.PtrConst Heif_plugin_info -> IO Heif_error))
+hs_bindgen_d9c7cda5fa23d9da =
+  BG.fromFFIType hs_bindgen_d9c7cda5fa23d9da_base
+
+{-# NOINLINE heif_unload_plugin #-}
+{-| __C declaration:__ @heif_unload_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 179:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_unload_plugin :: BG.FunPtr (PtrConst.PtrConst Heif_plugin_info -> IO Heif_error)
+heif_unload_plugin =
+  BG.unsafePerformIO hs_bindgen_d9c7cda5fa23d9da
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_4b420f655c4b044f" hs_bindgen_4b420f655c4b044f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_plugin_directories@
+hs_bindgen_4b420f655c4b044f :: IO (BG.FunPtr (IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))))
+hs_bindgen_4b420f655c4b044f =
+  BG.fromFFIType hs_bindgen_4b420f655c4b044f_base
+
+{-# NOINLINE heif_get_plugin_directories #-}
+{-| __C declaration:__ @heif_get_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 185:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_plugin_directories :: BG.FunPtr (IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)))
+heif_get_plugin_directories =
+  BG.unsafePerformIO hs_bindgen_4b420f655c4b044f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_c9dc77b0e04f1a94" hs_bindgen_c9dc77b0e04f1a94_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_plugin_directories@
+hs_bindgen_c9dc77b0e04f1a94 :: IO (BG.FunPtr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar) -> IO ()))
+hs_bindgen_c9dc77b0e04f1a94 =
+  BG.fromFFIType hs_bindgen_c9dc77b0e04f1a94_base
+
+{-# NOINLINE heif_free_plugin_directories #-}
+{-| __C declaration:__ @heif_free_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 188:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_plugin_directories :: BG.FunPtr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar) -> IO ())
+heif_free_plugin_directories =
+  BG.unsafePerformIO hs_bindgen_c9dc77b0e04f1a94
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder_plugin@
+foreign import ccall unsafe "hs_bindgen_f56aad029d61bb2f" hs_bindgen_f56aad029d61bb2f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder_plugin@
+hs_bindgen_f56aad029d61bb2f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error))
+hs_bindgen_f56aad029d61bb2f =
+  BG.fromFFIType hs_bindgen_f56aad029d61bb2f_base
+
+{-# NOINLINE heif_register_decoder_plugin #-}
+{-| __C declaration:__ @heif_register_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder_plugin :: BG.FunPtr (PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error)
+heif_register_decoder_plugin =
+  BG.unsafePerformIO hs_bindgen_f56aad029d61bb2f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_encoder_plugin@
+foreign import ccall unsafe "hs_bindgen_f9fa4387373140b1" hs_bindgen_f9fa4387373140b1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_encoder_plugin@
+hs_bindgen_f9fa4387373140b1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_plugin -> IO Heif_error))
+hs_bindgen_f9fa4387373140b1 =
+  BG.fromFFIType hs_bindgen_f9fa4387373140b1_base
+
+{-# NOINLINE heif_register_encoder_plugin #-}
+{-| __C declaration:__ @heif_register_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 200:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_encoder_plugin :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_plugin -> IO Heif_error)
+heif_register_encoder_plugin =
+  BG.unsafePerformIO hs_bindgen_f9fa4387373140b1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder@
+foreign import ccall unsafe "hs_bindgen_c7c012cbd7e4135c" hs_bindgen_c7c012cbd7e4135c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_register_decoder@
+hs_bindgen_c7c012cbd7e4135c :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error))
+hs_bindgen_c7c012cbd7e4135c =
+  BG.fromFFIType hs_bindgen_c7c012cbd7e4135c_base
+
+{-# NOINLINE heif_register_decoder #-}
+{-| __C declaration:__ @heif_register_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 205:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_decoder_plugin -> IO Heif_error)
+heif_register_decoder =
+  BG.unsafePerformIO hs_bindgen_c7c012cbd7e4135c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_colorspace@
+foreign import ccall unsafe "hs_bindgen_e073d67d79caf9cf" hs_bindgen_e073d67d79caf9cf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_colorspace@
+hs_bindgen_e073d67d79caf9cf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_colorspace))
+hs_bindgen_e073d67d79caf9cf =
+  BG.fromFFIType hs_bindgen_e073d67d79caf9cf_base
+
+{-# NOINLINE heif_image_get_colorspace #-}
+{-| __C declaration:__ @heif_image_get_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 150:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_colorspace :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_colorspace)
+heif_image_get_colorspace =
+  BG.unsafePerformIO hs_bindgen_e073d67d79caf9cf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_chroma_format@
+foreign import ccall unsafe "hs_bindgen_c9aabf89051d1758" hs_bindgen_c9aabf89051d1758_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_chroma_format@
+hs_bindgen_c9aabf89051d1758 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_chroma))
+hs_bindgen_c9aabf89051d1758 =
+  BG.fromFFIType hs_bindgen_c9aabf89051d1758_base
+
+{-# NOINLINE heif_image_get_chroma_format #-}
+{-| __C declaration:__ @heif_image_get_chroma_format@
+
+    __defined at:__ @libheif\/heif_image.h 154:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_chroma_format :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_chroma)
+heif_image_get_chroma_format =
+  BG.unsafePerformIO hs_bindgen_c9aabf89051d1758
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_width@
+foreign import ccall unsafe "hs_bindgen_6e6e2b18117257e0" hs_bindgen_6e6e2b18117257e0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_width@
+hs_bindgen_6e6e2b18117257e0 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_6e6e2b18117257e0 =
+  BG.fromFFIType hs_bindgen_6e6e2b18117257e0_base
+
+{-# NOINLINE heif_image_get_width #-}
+{-| __C declaration:__ @heif_image_get_width@
+
+    __defined at:__ @libheif\/heif_image.h 164:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_width :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_width =
+  BG.unsafePerformIO hs_bindgen_6e6e2b18117257e0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_height@
+foreign import ccall unsafe "hs_bindgen_e4232c0e2e8deb5c" hs_bindgen_e4232c0e2e8deb5c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_height@
+hs_bindgen_e4232c0e2e8deb5c :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_e4232c0e2e8deb5c =
+  BG.fromFFIType hs_bindgen_e4232c0e2e8deb5c_base
+
+{-# NOINLINE heif_image_get_height #-}
+{-| __C declaration:__ @heif_image_get_height@
+
+    __defined at:__ @libheif\/heif_image.h 174:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_height :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_height =
+  BG.unsafePerformIO hs_bindgen_e4232c0e2e8deb5c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_width@
+foreign import ccall unsafe "hs_bindgen_ad0a46812ed66955" hs_bindgen_ad0a46812ed66955_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_width@
+hs_bindgen_ad0a46812ed66955 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_ad0a46812ed66955 =
+  BG.fromFFIType hs_bindgen_ad0a46812ed66955_base
+
+{-# NOINLINE heif_image_get_primary_width #-}
+{-| __C declaration:__ @heif_image_get_primary_width@
+
+    __defined at:__ @libheif\/heif_image.h 186:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_width :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_get_primary_width =
+  BG.unsafePerformIO hs_bindgen_ad0a46812ed66955
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_height@
+foreign import ccall unsafe "hs_bindgen_7eefbabd5f9b98b6" hs_bindgen_7eefbabd5f9b98b6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_primary_height@
+hs_bindgen_7eefbabd5f9b98b6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_7eefbabd5f9b98b6 =
+  BG.fromFFIType hs_bindgen_7eefbabd5f9b98b6_base
+
+{-# NOINLINE heif_image_get_primary_height #-}
+{-| __C declaration:__ @heif_image_get_primary_height@
+
+    __defined at:__ @libheif\/heif_image.h 198:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_height :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_get_primary_height =
+  BG.unsafePerformIO hs_bindgen_7eefbabd5f9b98b6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_crop@
+foreign import ccall unsafe "hs_bindgen_454755c015cd191e" hs_bindgen_454755c015cd191e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_crop@
+hs_bindgen_454755c015cd191e :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_454755c015cd191e =
+  BG.fromFFIType hs_bindgen_454755c015cd191e_base
+
+{-# NOINLINE heif_image_crop #-}
+{-| __C declaration:__ @heif_image_crop@
+
+    __defined at:__ @libheif\/heif_image.h 222:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_crop :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error)
+heif_image_crop =
+  BG.unsafePerformIO hs_bindgen_454755c015cd191e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extract_area@
+foreign import ccall unsafe "hs_bindgen_137ea4eb4c1dbebf" hs_bindgen_137ea4eb4c1dbebf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extract_area@
+hs_bindgen_137ea4eb4c1dbebf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_security_limits -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error))
+hs_bindgen_137ea4eb4c1dbebf =
+  BG.fromFFIType hs_bindgen_137ea4eb4c1dbebf_base
+
+{-# NOINLINE heif_image_extract_area #-}
+{-| __C declaration:__ @heif_image_extract_area@
+
+    __defined at:__ @libheif\/heif_image.h 226:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extract_area :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_security_limits -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error)
+heif_image_extract_area =
+  BG.unsafePerformIO hs_bindgen_137ea4eb4c1dbebf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_ab02493a34d79677" hs_bindgen_ab02493a34d79677_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel@
+hs_bindgen_ab02493a34d79677 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_ab02493a34d79677 =
+  BG.fromFFIType hs_bindgen_ab02493a34d79677_base
+
+{-# NOINLINE heif_image_get_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_get_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image.h 238:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_ab02493a34d79677
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel_range@
+foreign import ccall unsafe "hs_bindgen_d2e302dd2ee8f950" hs_bindgen_d2e302dd2ee8f950_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_bits_per_pixel_range@
+hs_bindgen_d2e302dd2ee8f950 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_d2e302dd2ee8f950 =
+  BG.fromFFIType hs_bindgen_d2e302dd2ee8f950_base
+
+{-# NOINLINE heif_image_get_bits_per_pixel_range #-}
+{-| __C declaration:__ @heif_image_get_bits_per_pixel_range@
+
+    __defined at:__ @libheif\/heif_image.h 247:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel_range :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_get_bits_per_pixel_range =
+  BG.unsafePerformIO hs_bindgen_d2e302dd2ee8f950
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_channel@
+foreign import ccall unsafe "hs_bindgen_5b15857d396cae51" hs_bindgen_5b15857d396cae51_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_channel@
+hs_bindgen_5b15857d396cae51 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt))
+hs_bindgen_5b15857d396cae51 =
+  BG.fromFFIType hs_bindgen_5b15857d396cae51_base
+
+{-# NOINLINE heif_image_has_channel #-}
+{-| __C declaration:__ @heif_image_has_channel@
+
+    __defined at:__ @libheif\/heif_image.h 250:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_channel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> IO BG.CInt)
+heif_image_has_channel =
+  BG.unsafePerformIO hs_bindgen_5b15857d396cae51
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly@
+foreign import ccall unsafe "hs_bindgen_a293c99564ffbee1" hs_bindgen_a293c99564ffbee1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly@
+hs_bindgen_a293c99564ffbee1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_a293c99564ffbee1 =
+  BG.fromFFIType hs_bindgen_a293c99564ffbee1_base
+
+{-# NOINLINE heif_image_get_plane_readonly #-}
+{-| __C declaration:__ @heif_image_get_plane_readonly@
+
+    __defined at:__ @libheif\/heif_image.h 258:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane_readonly =
+  BG.unsafePerformIO hs_bindgen_a293c99564ffbee1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane@
+foreign import ccall unsafe "hs_bindgen_1e54091d31894195" hs_bindgen_1e54091d31894195_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane@
+hs_bindgen_1e54091d31894195 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_1e54091d31894195 =
+  BG.fromFFIType hs_bindgen_1e54091d31894195_base
+
+{-# NOINLINE heif_image_get_plane #-}
+{-| __C declaration:__ @heif_image_get_plane@
+
+    __defined at:__ @libheif\/heif_image.h 264:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr BG.CInt -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane =
+  BG.unsafePerformIO hs_bindgen_1e54091d31894195
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly2@
+foreign import ccall unsafe "hs_bindgen_3ac7ef05f949468d" hs_bindgen_3ac7ef05f949468d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane_readonly2@
+hs_bindgen_3ac7ef05f949468d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_3ac7ef05f949468d =
+  BG.fromFFIType hs_bindgen_3ac7ef05f949468d_base
+
+{-# NOINLINE heif_image_get_plane_readonly2 #-}
+{-| __C declaration:__ @heif_image_get_plane_readonly2@
+
+    __defined at:__ @libheif\/heif_image.h 273:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly2 :: BG.FunPtr (PtrConst.PtrConst Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane_readonly2 =
+  BG.unsafePerformIO hs_bindgen_3ac7ef05f949468d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane2@
+foreign import ccall unsafe "hs_bindgen_b3d879307b0ecfef" hs_bindgen_b3d879307b0ecfef_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_plane2@
+hs_bindgen_b3d879307b0ecfef :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_b3d879307b0ecfef =
+  BG.fromFFIType hs_bindgen_b3d879307b0ecfef_base
+
+{-# NOINLINE heif_image_get_plane2 #-}
+{-| __C declaration:__ @heif_image_get_plane2@
+
+    __defined at:__ @libheif\/heif_image.h 278:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane2 :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8))
+heif_image_get_plane2 =
+  BG.unsafePerformIO hs_bindgen_b3d879307b0ecfef
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_scale_image@
+foreign import ccall unsafe "hs_bindgen_91b44b593d8b2e0d" hs_bindgen_91b44b593d8b2e0d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_scale_image@
+hs_bindgen_91b44b593d8b2e0d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_image) -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_scaling_options -> IO Heif_error))
+hs_bindgen_91b44b593d8b2e0d =
+  BG.fromFFIType hs_bindgen_91b44b593d8b2e0d_base
+
+{-# NOINLINE heif_image_scale_image #-}
+{-| __C declaration:__ @heif_image_scale_image@
+
+    __defined at:__ @libheif\/heif_image.h 287:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_scale_image :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_image) -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_scaling_options -> IO Heif_error)
+heif_image_scale_image =
+  BG.unsafePerformIO hs_bindgen_91b44b593d8b2e0d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_to_size_fill_with_zero@
+foreign import ccall unsafe "hs_bindgen_39581edbcefe9e11" hs_bindgen_39581edbcefe9e11_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_to_size_fill_with_zero@
+hs_bindgen_39581edbcefe9e11 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error))
+hs_bindgen_39581edbcefe9e11 =
+  BG.fromFFIType hs_bindgen_39581edbcefe9e11_base
+
+{-# NOINLINE heif_image_extend_to_size_fill_with_zero #-}
+{-| __C declaration:__ @heif_image_extend_to_size_fill_with_zero@
+
+    __defined at:__ @libheif\/heif_image.h 295:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_to_size_fill_with_zero :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error)
+heif_image_extend_to_size_fill_with_zero =
+  BG.unsafePerformIO hs_bindgen_39581edbcefe9e11
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_decoding_warnings@
+foreign import ccall unsafe "hs_bindgen_052f3910ccd5c18c" hs_bindgen_052f3910ccd5c18c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_decoding_warnings@
+hs_bindgen_052f3910ccd5c18c :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.Ptr Heif_error -> BG.CInt -> IO BG.CInt))
+hs_bindgen_052f3910ccd5c18c =
+  BG.fromFFIType hs_bindgen_052f3910ccd5c18c_base
+
+{-# NOINLINE heif_image_get_decoding_warnings #-}
+{-| __C declaration:__ @heif_image_get_decoding_warnings@
+
+    __defined at:__ @libheif\/heif_image.h 305:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_decoding_warnings :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.Ptr Heif_error -> BG.CInt -> IO BG.CInt)
+heif_image_get_decoding_warnings =
+  BG.unsafePerformIO hs_bindgen_052f3910ccd5c18c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_decoding_warning@
+foreign import ccall unsafe "hs_bindgen_77d12dd9eb75d762" hs_bindgen_77d12dd9eb75d762_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_decoding_warning@
+hs_bindgen_77d12dd9eb75d762 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_error -> IO ()))
+hs_bindgen_77d12dd9eb75d762 =
+  BG.fromFFIType hs_bindgen_77d12dd9eb75d762_base
+
+{-# NOINLINE heif_image_add_decoding_warning #-}
+{-| __C declaration:__ @heif_image_add_decoding_warning@
+
+    __defined at:__ @libheif\/heif_image.h 312:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_decoding_warning :: BG.FunPtr (BG.Ptr Heif_image -> Heif_error -> IO ())
+heif_image_add_decoding_warning =
+  BG.unsafePerformIO hs_bindgen_77d12dd9eb75d762
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_release@
+foreign import ccall unsafe "hs_bindgen_e57b35874b9c2ef5" hs_bindgen_e57b35874b9c2ef5_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_release@
+hs_bindgen_e57b35874b9c2ef5 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO ()))
+hs_bindgen_e57b35874b9c2ef5 =
+  BG.fromFFIType hs_bindgen_e57b35874b9c2ef5_base
+
+{-# NOINLINE heif_image_release #-}
+{-| __C declaration:__ @heif_image_release@
+
+    __defined at:__ @libheif\/heif_image.h 317:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_release :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO ())
+heif_image_release =
+  BG.unsafePerformIO hs_bindgen_e57b35874b9c2ef5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_b5b62770d080f1eb" hs_bindgen_b5b62770d080f1eb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_pixel_aspect_ratio@
+hs_bindgen_b5b62770d080f1eb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_b5b62770d080f1eb =
+  BG.fromFFIType hs_bindgen_b5b62770d080f1eb_base
+
+{-# NOINLINE heif_image_get_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 320:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_pixel_aspect_ratio :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_get_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_b5b62770d080f1eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_5efdd32e4d856855" hs_bindgen_5efdd32e4d856855_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_pixel_aspect_ratio@
+hs_bindgen_5efdd32e4d856855 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_5efdd32e4d856855 =
+  BG.fromFFIType hs_bindgen_5efdd32e4d856855_base
+
+{-# NOINLINE heif_image_set_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 323:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_pixel_aspect_ratio :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_set_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_5efdd32e4d856855
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_cc8120096e554016" hs_bindgen_cc8120096e554016_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_pixel_aspect_ratio@
+hs_bindgen_cc8120096e554016 :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_cc8120096e554016 =
+  BG.fromFFIType hs_bindgen_cc8120096e554016_base
+
+{-# NOINLINE heif_image_handle_set_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_handle_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 326:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_pixel_aspect_ratio :: BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_handle_set_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_cc8120096e554016
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_create@
+foreign import ccall unsafe "hs_bindgen_e527bfc712439944" hs_bindgen_e527bfc712439944_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_create@
+hs_bindgen_e527bfc712439944 :: IO (BG.FunPtr (BG.CInt -> BG.CInt -> Heif_colorspace -> Heif_chroma -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error))
+hs_bindgen_e527bfc712439944 =
+  BG.fromFFIType hs_bindgen_e527bfc712439944_base
+
+{-# NOINLINE heif_image_create #-}
+{-| __C declaration:__ @heif_image_create@
+
+    __defined at:__ @libheif\/heif_image.h 344:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_create :: BG.FunPtr (BG.CInt -> BG.CInt -> Heif_colorspace -> Heif_chroma -> BG.Ptr (BG.Ptr Heif_image) -> IO Heif_error)
+heif_image_create =
+  BG.unsafePerformIO hs_bindgen_e527bfc712439944
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane@
+foreign import ccall unsafe "hs_bindgen_bbfa602c16d0e115" hs_bindgen_bbfa602c16d0e115_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane@
+hs_bindgen_bbfa602c16d0e115 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_bbfa602c16d0e115 =
+  BG.fromFFIType hs_bindgen_bbfa602c16d0e115_base
+
+{-# NOINLINE heif_image_add_plane #-}
+{-| __C declaration:__ @heif_image_add_plane@
+
+    __defined at:__ @libheif\/heif_image.h 378:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> IO Heif_error)
+heif_image_add_plane =
+  BG.unsafePerformIO hs_bindgen_bbfa602c16d0e115
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane_safe@
+foreign import ccall unsafe "hs_bindgen_db45cbabffee2123" hs_bindgen_db45cbabffee2123_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_plane_safe@
+hs_bindgen_db45cbabffee2123 :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error))
+hs_bindgen_db45cbabffee2123 =
+  BG.fromFFIType hs_bindgen_db45cbabffee2123_base
+
+{-# NOINLINE heif_image_add_plane_safe #-}
+{-| __C declaration:__ @heif_image_add_plane_safe@
+
+    __defined at:__ @libheif\/heif_image.h 387:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane_safe :: BG.FunPtr (BG.Ptr Heif_image -> Heif_channel -> BG.CInt -> BG.CInt -> BG.CInt -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error)
+heif_image_add_plane_safe =
+  BG.unsafePerformIO hs_bindgen_db45cbabffee2123
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_5ca559cd3abef76b" hs_bindgen_5ca559cd3abef76b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_premultiplied_alpha@
+hs_bindgen_5ca559cd3abef76b :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> IO ()))
+hs_bindgen_5ca559cd3abef76b =
+  BG.fromFFIType hs_bindgen_5ca559cd3abef76b_base
+
+{-# NOINLINE heif_image_set_premultiplied_alpha #-}
+{-| __C declaration:__ @heif_image_set_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 394:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_premultiplied_alpha :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> IO ())
+heif_image_set_premultiplied_alpha =
+  BG.unsafePerformIO hs_bindgen_5ca559cd3abef76b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_dfd40ac51dd90bdf" hs_bindgen_dfd40ac51dd90bdf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_is_premultiplied_alpha@
+hs_bindgen_dfd40ac51dd90bdf :: IO (BG.FunPtr (BG.Ptr Heif_image -> IO BG.CInt))
+hs_bindgen_dfd40ac51dd90bdf =
+  BG.fromFFIType hs_bindgen_dfd40ac51dd90bdf_base
+
+{-# NOINLINE heif_image_is_premultiplied_alpha #-}
+{-| __C declaration:__ @heif_image_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_is_premultiplied_alpha :: BG.FunPtr (BG.Ptr Heif_image -> IO BG.CInt)
+heif_image_is_premultiplied_alpha =
+  BG.unsafePerformIO hs_bindgen_dfd40ac51dd90bdf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_padding_to_size@
+foreign import ccall unsafe "hs_bindgen_9fb9a1c5713d955a" hs_bindgen_9fb9a1c5713d955a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_extend_padding_to_size@
+hs_bindgen_9fb9a1c5713d955a :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> IO Heif_error))
+hs_bindgen_9fb9a1c5713d955a =
+  BG.fromFFIType hs_bindgen_9fb9a1c5713d955a_base
+
+{-# NOINLINE heif_image_extend_padding_to_size #-}
+{-| __C declaration:__ @heif_image_extend_padding_to_size@
+
+    __defined at:__ @libheif\/heif_image.h 406:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_padding_to_size :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> IO Heif_error)
+heif_image_extend_padding_to_size =
+  BG.unsafePerformIO hs_bindgen_9fb9a1c5713d955a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_set_defaults@
+foreign import ccall unsafe "hs_bindgen_6f16968893d84864" hs_bindgen_6f16968893d84864_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_set_defaults@
+hs_bindgen_6f16968893d84864 :: IO (BG.FunPtr (BG.Ptr Heif_color_conversion_options -> IO ()))
+hs_bindgen_6f16968893d84864 =
+  BG.fromFFIType hs_bindgen_6f16968893d84864_base
+
+{-# NOINLINE heif_color_conversion_options_set_defaults #-}
+{-| __C declaration:__ @heif_color_conversion_options_set_defaults@
+
+    __defined at:__ @libheif\/heif_color.h 99:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_set_defaults :: BG.FunPtr (BG.Ptr Heif_color_conversion_options -> IO ())
+heif_color_conversion_options_set_defaults =
+  BG.unsafePerformIO hs_bindgen_6f16968893d84864
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_alloc@
+foreign import ccall unsafe "hs_bindgen_64bcbbba230b33f1" hs_bindgen_64bcbbba230b33f1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_alloc@
+hs_bindgen_64bcbbba230b33f1 :: IO (BG.FunPtr (IO (BG.Ptr Heif_color_conversion_options_ext)))
+hs_bindgen_64bcbbba230b33f1 =
+  BG.fromFFIType hs_bindgen_64bcbbba230b33f1_base
+
+{-# NOINLINE heif_color_conversion_options_ext_alloc #-}
+{-| __C declaration:__ @heif_color_conversion_options_ext_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 102:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_alloc :: BG.FunPtr (IO (BG.Ptr Heif_color_conversion_options_ext))
+heif_color_conversion_options_ext_alloc =
+  BG.unsafePerformIO hs_bindgen_64bcbbba230b33f1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_copy@
+foreign import ccall unsafe "hs_bindgen_9f16886e93804ee2" hs_bindgen_9f16886e93804ee2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_copy@
+hs_bindgen_9f16886e93804ee2 :: IO (BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> PtrConst.PtrConst Heif_color_conversion_options_ext -> IO ()))
+hs_bindgen_9f16886e93804ee2 =
+  BG.fromFFIType hs_bindgen_9f16886e93804ee2_base
+
+{-# NOINLINE heif_color_conversion_options_ext_copy #-}
+{-| __C declaration:__ @heif_color_conversion_options_ext_copy@
+
+    __defined at:__ @libheif\/heif_color.h 105:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_copy :: BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> PtrConst.PtrConst Heif_color_conversion_options_ext -> IO ())
+heif_color_conversion_options_ext_copy =
+  BG.unsafePerformIO hs_bindgen_9f16886e93804ee2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_free@
+foreign import ccall unsafe "hs_bindgen_2711d46fed5cbeb2" hs_bindgen_2711d46fed5cbeb2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_color_conversion_options_ext_free@
+hs_bindgen_2711d46fed5cbeb2 :: IO (BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> IO ()))
+hs_bindgen_2711d46fed5cbeb2 =
+  BG.fromFFIType hs_bindgen_2711d46fed5cbeb2_base
+
+{-# NOINLINE heif_color_conversion_options_ext_free #-}
+{-| __C declaration:__ @heif_color_conversion_options_ext_free@
+
+    __defined at:__ @libheif\/heif_color.h 109:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_free :: BG.FunPtr (BG.Ptr Heif_color_conversion_options_ext -> IO ())
+heif_color_conversion_options_ext_free =
+  BG.unsafePerformIO hs_bindgen_2711d46fed5cbeb2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_e64f44dae6e663ed" hs_bindgen_e64f44dae6e663ed_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_color_profile_type@
+hs_bindgen_e64f44dae6e663ed :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_color_profile_type))
+hs_bindgen_e64f44dae6e663ed =
+  BG.fromFFIType hs_bindgen_e64f44dae6e663ed_base
+
+{-# NOINLINE heif_image_handle_get_color_profile_type #-}
+{-| __C declaration:__ @heif_image_handle_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 129:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_color_profile_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_color_profile_type)
+heif_image_handle_get_color_profile_type =
+  BG.unsafePerformIO hs_bindgen_e64f44dae6e663ed
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_ed69fd2400ee84ba" hs_bindgen_ed69fd2400ee84ba_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile_size@
+hs_bindgen_ed69fd2400ee84ba :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.CSize))
+hs_bindgen_ed69fd2400ee84ba =
+  BG.fromFFIType hs_bindgen_ed69fd2400ee84ba_base
+
+{-# NOINLINE heif_image_handle_get_raw_color_profile_size #-}
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 132:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile_size :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.CSize)
+heif_image_handle_get_raw_color_profile_size =
+  BG.unsafePerformIO hs_bindgen_ed69fd2400ee84ba
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_d8c99aa8c6e5a830" hs_bindgen_d8c99aa8c6e5a830_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_raw_color_profile@
+hs_bindgen_d8c99aa8c6e5a830 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_d8c99aa8c6e5a830 =
+  BG.fromFFIType hs_bindgen_d8c99aa8c6e5a830_base
+
+{-# NOINLINE heif_image_handle_get_raw_color_profile #-}
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 136:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr BG.Void -> IO Heif_error)
+heif_image_handle_get_raw_color_profile =
+  BG.unsafePerformIO hs_bindgen_d8c99aa8c6e5a830
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_color_primaries@
+foreign import ccall unsafe "hs_bindgen_4614c65e54f21413" hs_bindgen_4614c65e54f21413_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_color_primaries@
+hs_bindgen_4614c65e54f21413 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error))
+hs_bindgen_4614c65e54f21413 =
+  BG.fromFFIType hs_bindgen_4614c65e54f21413_base
+
+{-# NOINLINE heif_nclx_color_profile_set_color_primaries #-}
+{-| __C declaration:__ @heif_nclx_color_profile_set_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 215:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_color_primaries :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error)
+heif_nclx_color_profile_set_color_primaries =
+  BG.unsafePerformIO hs_bindgen_4614c65e54f21413
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_transfer_characteristics@
+foreign import ccall unsafe "hs_bindgen_116e28f3db0d4120" hs_bindgen_116e28f3db0d4120_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_transfer_characteristics@
+hs_bindgen_116e28f3db0d4120 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error))
+hs_bindgen_116e28f3db0d4120 =
+  BG.fromFFIType hs_bindgen_116e28f3db0d4120_base
+
+{-# NOINLINE heif_nclx_color_profile_set_transfer_characteristics #-}
+{-| __C declaration:__ @heif_nclx_color_profile_set_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_transfer_characteristics :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error)
+heif_nclx_color_profile_set_transfer_characteristics =
+  BG.unsafePerformIO hs_bindgen_116e28f3db0d4120
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_matrix_coefficients@
+foreign import ccall unsafe "hs_bindgen_19c22d40dc00a9c9" hs_bindgen_19c22d40dc00a9c9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_set_matrix_coefficients@
+hs_bindgen_19c22d40dc00a9c9 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error))
+hs_bindgen_19c22d40dc00a9c9 =
+  BG.fromFFIType hs_bindgen_19c22d40dc00a9c9_base
+
+{-# NOINLINE heif_nclx_color_profile_set_matrix_coefficients #-}
+{-| __C declaration:__ @heif_nclx_color_profile_set_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 221:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_matrix_coefficients :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> HsBindgen.Runtime.LibC.Word16 -> IO Heif_error)
+heif_nclx_color_profile_set_matrix_coefficients =
+  BG.unsafePerformIO hs_bindgen_19c22d40dc00a9c9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_b3b5fb2096a6f40b" hs_bindgen_b3b5fb2096a6f40b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nclx_color_profile@
+hs_bindgen_b3b5fb2096a6f40b :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error))
+hs_bindgen_b3b5fb2096a6f40b =
+  BG.fromFFIType hs_bindgen_b3b5fb2096a6f40b_base
+
+{-# NOINLINE heif_image_handle_get_nclx_color_profile #-}
+{-| __C declaration:__ @heif_image_handle_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 227:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nclx_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error)
+heif_image_handle_get_nclx_color_profile =
+  BG.unsafePerformIO hs_bindgen_b3b5fb2096a6f40b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_alloc@
+foreign import ccall unsafe "hs_bindgen_a20e40e2206679a9" hs_bindgen_a20e40e2206679a9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_alloc@
+hs_bindgen_a20e40e2206679a9 :: IO (BG.FunPtr (IO (BG.Ptr Heif_color_profile_nclx)))
+hs_bindgen_a20e40e2206679a9 =
+  BG.fromFFIType hs_bindgen_a20e40e2206679a9_base
+
+{-# NOINLINE heif_nclx_color_profile_alloc #-}
+{-| __C declaration:__ @heif_nclx_color_profile_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 234:26@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_alloc :: BG.FunPtr (IO (BG.Ptr Heif_color_profile_nclx))
+heif_nclx_color_profile_alloc =
+  BG.unsafePerformIO hs_bindgen_a20e40e2206679a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_free@
+foreign import ccall unsafe "hs_bindgen_699d69b45a1cb468" hs_bindgen_699d69b45a1cb468_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_nclx_color_profile_free@
+hs_bindgen_699d69b45a1cb468 :: IO (BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> IO ()))
+hs_bindgen_699d69b45a1cb468 =
+  BG.fromFFIType hs_bindgen_699d69b45a1cb468_base
+
+{-# NOINLINE heif_nclx_color_profile_free #-}
+{-| __C declaration:__ @heif_nclx_color_profile_free@
+
+    __defined at:__ @libheif\/heif_color.h 237:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_free :: BG.FunPtr (BG.Ptr Heif_color_profile_nclx -> IO ())
+heif_nclx_color_profile_free =
+  BG.unsafePerformIO hs_bindgen_699d69b45a1cb468
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_409cc3435b1a7e31" hs_bindgen_409cc3435b1a7e31_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_color_profile_type@
+hs_bindgen_409cc3435b1a7e31 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_color_profile_type))
+hs_bindgen_409cc3435b1a7e31 =
+  BG.fromFFIType hs_bindgen_409cc3435b1a7e31_base
+
+{-# NOINLINE heif_image_get_color_profile_type #-}
+{-| __C declaration:__ @heif_image_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 243:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_color_profile_type :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_color_profile_type)
+heif_image_get_color_profile_type =
+  BG.unsafePerformIO hs_bindgen_409cc3435b1a7e31
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_2723d50c493f3f61" hs_bindgen_2723d50c493f3f61_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile_size@
+hs_bindgen_2723d50c493f3f61 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.CSize))
+hs_bindgen_2723d50c493f3f61 =
+  BG.fromFFIType hs_bindgen_2723d50c493f3f61_base
+
+{-# NOINLINE heif_image_get_raw_color_profile_size #-}
+{-| __C declaration:__ @heif_image_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 247:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile_size :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.CSize)
+heif_image_get_raw_color_profile_size =
+  BG.unsafePerformIO hs_bindgen_2723d50c493f3f61
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_e92550f12c6d8fb0" hs_bindgen_e92550f12c6d8fb0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_raw_color_profile@
+hs_bindgen_e92550f12c6d8fb0 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_e92550f12c6d8fb0 =
+  BG.fromFFIType hs_bindgen_e92550f12c6d8fb0_base
+
+{-# NOINLINE heif_image_get_raw_color_profile #-}
+{-| __C declaration:__ @heif_image_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr BG.Void -> IO Heif_error)
+heif_image_get_raw_color_profile =
+  BG.unsafePerformIO hs_bindgen_e92550f12c6d8fb0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_0988df78a76b5973" hs_bindgen_0988df78a76b5973_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nclx_color_profile@
+hs_bindgen_0988df78a76b5973 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error))
+hs_bindgen_0988df78a76b5973 =
+  BG.fromFFIType hs_bindgen_0988df78a76b5973_base
+
+{-# NOINLINE heif_image_get_nclx_color_profile #-}
+{-| __C declaration:__ @heif_image_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nclx_color_profile :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr (BG.Ptr Heif_color_profile_nclx) -> IO Heif_error)
+heif_image_get_nclx_color_profile =
+  BG.unsafePerformIO hs_bindgen_0988df78a76b5973
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_1cbc106cb4bd0c43" hs_bindgen_1cbc106cb4bd0c43_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_raw_color_profile@
+hs_bindgen_1cbc106cb4bd0c43 :: IO (BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> IO Heif_error))
+hs_bindgen_1cbc106cb4bd0c43 =
+  BG.fromFFIType hs_bindgen_1cbc106cb4bd0c43_base
+
+{-# NOINLINE heif_image_set_raw_color_profile #-}
+{-| __C declaration:__ @heif_image_set_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 262:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_raw_color_profile :: BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> IO Heif_error)
+heif_image_set_raw_color_profile =
+  BG.unsafePerformIO hs_bindgen_1cbc106cb4bd0c43
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_7aa510c633572c35" hs_bindgen_7aa510c633572c35_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nclx_color_profile@
+hs_bindgen_7aa510c633572c35 :: IO (BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst Heif_color_profile_nclx -> IO Heif_error))
+hs_bindgen_7aa510c633572c35 =
+  BG.fromFFIType hs_bindgen_7aa510c633572c35_base
+
+{-# NOINLINE heif_image_set_nclx_color_profile #-}
+{-| __C declaration:__ @heif_image_set_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 268:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nclx_color_profile :: BG.FunPtr (BG.Ptr Heif_image -> PtrConst.PtrConst Heif_color_profile_nclx -> IO Heif_error)
+heif_image_set_nclx_color_profile =
+  BG.unsafePerformIO hs_bindgen_7aa510c633572c35
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_db973d1a2a00a405" hs_bindgen_db973d1a2a00a405_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_content_light_level@
+hs_bindgen_db973d1a2a00a405 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_db973d1a2a00a405 =
+  BG.fromFFIType hs_bindgen_db973d1a2a00a405_base
+
+{-# NOINLINE heif_image_has_content_light_level #-}
+{-| __C declaration:__ @heif_image_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 301:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_content_light_level =
+  BG.unsafePerformIO hs_bindgen_db973d1a2a00a405
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_ff42d34b21f3a2ce" hs_bindgen_ff42d34b21f3a2ce_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_content_light_level@
+hs_bindgen_ff42d34b21f3a2ce :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_ff42d34b21f3a2ce =
+  BG.fromFFIType hs_bindgen_ff42d34b21f3a2ce_base
+
+{-# NOINLINE heif_image_handle_has_content_light_level #-}
+{-| __C declaration:__ @heif_image_handle_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 304:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_content_light_level =
+  BG.unsafePerformIO hs_bindgen_ff42d34b21f3a2ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_530d71005a426553" hs_bindgen_530d71005a426553_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_content_light_level@
+hs_bindgen_530d71005a426553 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_content_light_level -> IO ()))
+hs_bindgen_530d71005a426553 =
+  BG.fromFFIType hs_bindgen_530d71005a426553_base
+
+{-# NOINLINE heif_image_get_content_light_level #-}
+{-| __C declaration:__ @heif_image_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 308:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_content_light_level -> IO ())
+heif_image_get_content_light_level =
+  BG.unsafePerformIO hs_bindgen_530d71005a426553
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_5d0d43fee97f75e5" hs_bindgen_5d0d43fee97f75e5_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_content_light_level@
+hs_bindgen_5d0d43fee97f75e5 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_content_light_level -> IO BG.CInt))
+hs_bindgen_5d0d43fee97f75e5 =
+  BG.fromFFIType hs_bindgen_5d0d43fee97f75e5_base
+
+{-# NOINLINE heif_image_handle_get_content_light_level #-}
+{-| __C declaration:__ @heif_image_handle_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 312:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_content_light_level -> IO BG.CInt)
+heif_image_handle_get_content_light_level =
+  BG.unsafePerformIO hs_bindgen_5d0d43fee97f75e5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_2c51fa25a85ab816" hs_bindgen_2c51fa25a85ab816_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_content_light_level@
+hs_bindgen_2c51fa25a85ab816 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_content_light_level -> IO ()))
+hs_bindgen_2c51fa25a85ab816 =
+  BG.fromFFIType hs_bindgen_2c51fa25a85ab816_base
+
+{-# NOINLINE heif_image_set_content_light_level #-}
+{-| __C declaration:__ @heif_image_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 315:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_content_light_level -> IO ())
+heif_image_set_content_light_level =
+  BG.unsafePerformIO hs_bindgen_2c51fa25a85ab816
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_75e4bb9edfe7cd9f" hs_bindgen_75e4bb9edfe7cd9f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_content_light_level@
+hs_bindgen_75e4bb9edfe7cd9f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_content_light_level -> IO ()))
+hs_bindgen_75e4bb9edfe7cd9f =
+  BG.fromFFIType hs_bindgen_75e4bb9edfe7cd9f_base
+
+{-# NOINLINE heif_image_handle_set_content_light_level #-}
+{-| __C declaration:__ @heif_image_handle_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 318:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_content_light_level :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_content_light_level -> IO ())
+heif_image_handle_set_content_light_level =
+  BG.unsafePerformIO hs_bindgen_75e4bb9edfe7cd9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_46bc79c600610be0" hs_bindgen_46bc79c600610be0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_mastering_display_colour_volume@
+hs_bindgen_46bc79c600610be0 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_46bc79c600610be0 =
+  BG.fromFFIType hs_bindgen_46bc79c600610be0_base
+
+{-# NOINLINE heif_image_has_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_46bc79c600610be0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_504e9917f645ef88" hs_bindgen_504e9917f645ef88_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_mastering_display_colour_volume@
+hs_bindgen_504e9917f645ef88 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_504e9917f645ef88 =
+  BG.fromFFIType hs_bindgen_504e9917f645ef88_base
+
+{-# NOINLINE heif_image_handle_has_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_handle_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_504e9917f645ef88
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_4a2fb9e8f85d6de1" hs_bindgen_4a2fb9e8f85d6de1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_mastering_display_colour_volume@
+hs_bindgen_4a2fb9e8f85d6de1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_mastering_display_colour_volume -> IO ()))
+hs_bindgen_4a2fb9e8f85d6de1 =
+  BG.fromFFIType hs_bindgen_4a2fb9e8f85d6de1_base
+
+{-# NOINLINE heif_image_get_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 404:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_mastering_display_colour_volume -> IO ())
+heif_image_get_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_4a2fb9e8f85d6de1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_95d43adae491456f" hs_bindgen_95d43adae491456f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_mastering_display_colour_volume@
+hs_bindgen_95d43adae491456f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_mastering_display_colour_volume -> IO BG.CInt))
+hs_bindgen_95d43adae491456f =
+  BG.fromFFIType hs_bindgen_95d43adae491456f_base
+
+{-# NOINLINE heif_image_handle_get_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_handle_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 408:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_mastering_display_colour_volume -> IO BG.CInt)
+heif_image_handle_get_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_95d43adae491456f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_290787e53e2b60b6" hs_bindgen_290787e53e2b60b6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_mastering_display_colour_volume@
+hs_bindgen_290787e53e2b60b6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ()))
+hs_bindgen_290787e53e2b60b6 =
+  BG.fromFFIType hs_bindgen_290787e53e2b60b6_base
+
+{-# NOINLINE heif_image_set_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 411:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ())
+heif_image_set_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_290787e53e2b60b6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_5fe4f8ca0e66f87f" hs_bindgen_5fe4f8ca0e66f87f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_mastering_display_colour_volume@
+hs_bindgen_5fe4f8ca0e66f87f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ()))
+hs_bindgen_5fe4f8ca0e66f87f =
+  BG.fromFFIType hs_bindgen_5fe4f8ca0e66f87f_base
+
+{-# NOINLINE heif_image_handle_set_mastering_display_colour_volume #-}
+{-| __C declaration:__ @heif_image_handle_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 414:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_mastering_display_colour_volume :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_mastering_display_colour_volume -> IO ())
+heif_image_handle_set_mastering_display_colour_volume =
+  BG.unsafePerformIO hs_bindgen_5fe4f8ca0e66f87f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_80383eae4f658d98" hs_bindgen_80383eae4f658d98_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_ambient_viewing_environment@
+hs_bindgen_80383eae4f658d98 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_80383eae4f658d98 =
+  BG.fromFFIType hs_bindgen_80383eae4f658d98_base
+
+{-# NOINLINE heif_image_has_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 420:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_80383eae4f658d98
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_d98bfd626a7d6830" hs_bindgen_d98bfd626a7d6830_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_ambient_viewing_environment@
+hs_bindgen_d98bfd626a7d6830 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_d98bfd626a7d6830 =
+  BG.fromFFIType hs_bindgen_d98bfd626a7d6830_base
+
+{-# NOINLINE heif_image_handle_has_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_handle_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 423:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_d98bfd626a7d6830
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_d77001407b8f6d06" hs_bindgen_d77001407b8f6d06_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_ambient_viewing_environment@
+hs_bindgen_d77001407b8f6d06 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt))
+hs_bindgen_d77001407b8f6d06 =
+  BG.fromFFIType hs_bindgen_d77001407b8f6d06_base
+
+{-# NOINLINE heif_image_get_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 427:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt)
+heif_image_get_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_d77001407b8f6d06
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_23814d0fca44d5da" hs_bindgen_23814d0fca44d5da_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ambient_viewing_environment@
+hs_bindgen_23814d0fca44d5da :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt))
+hs_bindgen_23814d0fca44d5da =
+  BG.fromFFIType hs_bindgen_23814d0fca44d5da_base
+
+{-# NOINLINE heif_image_handle_get_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_handle_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 431:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_ambient_viewing_environment -> IO BG.CInt)
+heif_image_handle_get_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_23814d0fca44d5da
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_71575ae4017a355d" hs_bindgen_71575ae4017a355d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_ambient_viewing_environment@
+hs_bindgen_71575ae4017a355d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ()))
+hs_bindgen_71575ae4017a355d =
+  BG.fromFFIType hs_bindgen_71575ae4017a355d_base
+
+{-# NOINLINE heif_image_set_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 434:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ())
+heif_image_set_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_71575ae4017a355d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_c312bdda2671ccdc" hs_bindgen_c312bdda2671ccdc_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_ambient_viewing_environment@
+hs_bindgen_c312bdda2671ccdc :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ()))
+hs_bindgen_c312bdda2671ccdc =
+  BG.fromFFIType hs_bindgen_c312bdda2671ccdc_base
+
+{-# NOINLINE heif_image_handle_set_ambient_viewing_environment #-}
+{-| __C declaration:__ @heif_image_handle_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 437:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_ambient_viewing_environment :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_ambient_viewing_environment -> IO ())
+heif_image_handle_set_ambient_viewing_environment =
+  BG.unsafePerformIO hs_bindgen_c312bdda2671ccdc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_e7d75561cc58be41" hs_bindgen_e7d75561cc58be41_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_has_nominal_diffuse_white_luminance@
+hs_bindgen_e7d75561cc58be41 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt))
+hs_bindgen_e7d75561cc58be41 =
+  BG.fromFFIType hs_bindgen_e7d75561cc58be41_base
+
+{-# NOINLINE heif_image_has_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 450:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO BG.CInt)
+heif_image_has_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_e7d75561cc58be41
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_ac6ca5887cc19e74" hs_bindgen_ac6ca5887cc19e74_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_nominal_diffuse_white_luminance@
+hs_bindgen_ac6ca5887cc19e74 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_ac6ca5887cc19e74 =
+  BG.fromFFIType hs_bindgen_ac6ca5887cc19e74_base
+
+{-# NOINLINE heif_image_get_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 453:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_ac6ca5887cc19e74
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_3a5d53bf827d8580" hs_bindgen_3a5d53bf827d8580_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_nominal_diffuse_white_luminance@
+hs_bindgen_3a5d53bf827d8580 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_3a5d53bf827d8580 =
+  BG.fromFFIType hs_bindgen_3a5d53bf827d8580_base
+
+{-# NOINLINE heif_image_set_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 456:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_set_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_3a5d53bf827d8580
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_8478e7753942715a" hs_bindgen_8478e7753942715a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_nominal_diffuse_white_luminance@
+hs_bindgen_8478e7753942715a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_8478e7753942715a =
+  BG.fromFFIType hs_bindgen_8478e7753942715a_base
+
+{-# NOINLINE heif_image_handle_has_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_handle_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 459:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_8478e7753942715a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_c20c28632ce30863" hs_bindgen_c20c28632ce30863_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_nominal_diffuse_white_luminance@
+hs_bindgen_c20c28632ce30863 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_c20c28632ce30863 =
+  BG.fromFFIType hs_bindgen_c20c28632ce30863_base
+
+{-# NOINLINE heif_image_handle_get_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_handle_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 462:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_handle_get_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_c20c28632ce30863
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_101384e10d3eb9f6" hs_bindgen_101384e10d3eb9f6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_nominal_diffuse_white_luminance@
+hs_bindgen_101384e10d3eb9f6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_101384e10d3eb9f6 =
+  BG.fromFFIType hs_bindgen_101384e10d3eb9f6_base
+
+{-# NOINLINE heif_image_handle_set_nominal_diffuse_white_luminance #-}
+{-| __C declaration:__ @heif_image_handle_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 465:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_nominal_diffuse_white_luminance :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_handle_set_nominal_diffuse_white_luminance =
+  BG.unsafePerformIO hs_bindgen_101384e10d3eb9f6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_mastering_display_colour_volume_decode@
+foreign import ccall unsafe "hs_bindgen_bd18c4f597c6733a" hs_bindgen_bd18c4f597c6733a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_mastering_display_colour_volume_decode@
+hs_bindgen_bd18c4f597c6733a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_mastering_display_colour_volume -> BG.Ptr Heif_decoded_mastering_display_colour_volume -> IO Heif_error))
+hs_bindgen_bd18c4f597c6733a =
+  BG.fromFFIType hs_bindgen_bd18c4f597c6733a_base
+
+{-# NOINLINE heif_mastering_display_colour_volume_decode #-}
+{-| __C declaration:__ @heif_mastering_display_colour_volume_decode@
+
+    __defined at:__ @libheif\/heif_color.h 472:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_mastering_display_colour_volume_decode :: BG.FunPtr (PtrConst.PtrConst Heif_mastering_display_colour_volume -> BG.Ptr Heif_decoded_mastering_display_colour_volume -> IO Heif_error)
+heif_mastering_display_colour_volume_decode =
+  BG.unsafePerformIO hs_bindgen_bd18c4f597c6733a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_main_brand@
+foreign import ccall unsafe "hs_bindgen_2d53f48e29c79962" hs_bindgen_2d53f48e29c79962_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_main_brand@
+hs_bindgen_2d53f48e29c79962 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2))
+hs_bindgen_2d53f48e29c79962 =
+  BG.fromFFIType hs_bindgen_2d53f48e29c79962_base
+
+{-# NOINLINE heif_read_main_brand #-}
+{-| __C declaration:__ @heif_read_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 269:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_main_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2)
+heif_read_main_brand =
+  BG.unsafePerformIO hs_bindgen_2d53f48e29c79962
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_minor_version_brand@
+foreign import ccall unsafe "hs_bindgen_d44a12ee72bb9c2e" hs_bindgen_d44a12ee72bb9c2e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_read_minor_version_brand@
+hs_bindgen_d44a12ee72bb9c2e :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2))
+hs_bindgen_d44a12ee72bb9c2e =
+  BG.fromFFIType hs_bindgen_d44a12ee72bb9c2e_base
+
+{-# NOINLINE heif_read_minor_version_brand #-}
+{-| __C declaration:__ @heif_read_minor_version_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 273:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_minor_version_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand2)
+heif_read_minor_version_brand =
+  BG.unsafePerformIO hs_bindgen_d44a12ee72bb9c2e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_fourcc_to_brand@
+foreign import ccall unsafe "hs_bindgen_a65b895080eaa5da" hs_bindgen_a65b895080eaa5da_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_fourcc_to_brand@
+hs_bindgen_a65b895080eaa5da :: IO (BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO Heif_brand2))
+hs_bindgen_a65b895080eaa5da =
+  BG.fromFFIType hs_bindgen_a65b895080eaa5da_base
+
+{-# NOINLINE heif_fourcc_to_brand #-}
+{-| __C declaration:__ @heif_fourcc_to_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 277:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_fourcc_to_brand :: BG.FunPtr (PtrConst.PtrConst BG.CChar -> IO Heif_brand2)
+heif_fourcc_to_brand =
+  BG.unsafePerformIO hs_bindgen_a65b895080eaa5da
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_brand_to_fourcc@
+foreign import ccall unsafe "hs_bindgen_b67f7ec53fb11880" hs_bindgen_b67f7ec53fb11880_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_brand_to_fourcc@
+hs_bindgen_b67f7ec53fb11880 :: IO (BG.FunPtr (Heif_brand2 -> BG.Ptr BG.CChar -> IO ()))
+hs_bindgen_b67f7ec53fb11880 =
+  BG.fromFFIType hs_bindgen_b67f7ec53fb11880_base
+
+{-# NOINLINE heif_brand_to_fourcc #-}
+{-| __C declaration:__ @heif_brand_to_fourcc@
+
+    __defined at:__ @libheif\/heif_brands.h 281:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_brand_to_fourcc :: BG.FunPtr (Heif_brand2 -> BG.Ptr BG.CChar -> IO ())
+heif_brand_to_fourcc =
+  BG.unsafePerformIO hs_bindgen_b67f7ec53fb11880
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_156cb2560432b078" hs_bindgen_156cb2560432b078_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_brand@
+hs_bindgen_156cb2560432b078 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> PtrConst.PtrConst BG.CChar -> IO BG.CInt))
+hs_bindgen_156cb2560432b078 =
+  BG.fromFFIType hs_bindgen_156cb2560432b078_base
+
+{-# NOINLINE heif_has_compatible_brand #-}
+{-| __C declaration:__ @heif_has_compatible_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 289:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> PtrConst.PtrConst BG.CChar -> IO BG.CInt)
+heif_has_compatible_brand =
+  BG.unsafePerformIO hs_bindgen_156cb2560432b078
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_list_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_b8599f182b75ac09" hs_bindgen_b8599f182b75ac09_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_list_compatible_brands@
+hs_bindgen_b8599f182b75ac09 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> BG.Ptr (BG.Ptr Heif_brand2) -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_b8599f182b75ac09 =
+  BG.fromFFIType hs_bindgen_b8599f182b75ac09_base
+
+{-# NOINLINE heif_list_compatible_brands #-}
+{-| __C declaration:__ @heif_list_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_list_compatible_brands :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> BG.Ptr (BG.Ptr Heif_brand2) -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_list_compatible_brands =
+  BG.unsafePerformIO hs_bindgen_b8599f182b75ac09
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_list_of_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_58abda0a8161661e" hs_bindgen_58abda0a8161661e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_free_list_of_compatible_brands@
+hs_bindgen_58abda0a8161661e :: IO (BG.FunPtr (BG.Ptr Heif_brand2 -> IO ()))
+hs_bindgen_58abda0a8161661e =
+  BG.fromFFIType hs_bindgen_58abda0a8161661e_base
+
+{-# NOINLINE heif_free_list_of_compatible_brands #-}
+{-| __C declaration:__ @heif_free_list_of_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 297:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_list_of_compatible_brands :: BG.FunPtr (BG.Ptr Heif_brand2 -> IO ())
+heif_free_list_of_compatible_brands =
+  BG.unsafePerformIO hs_bindgen_58abda0a8161661e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_file_mime_type@
+foreign import ccall unsafe "hs_bindgen_c28ed4b8a33c8c55" hs_bindgen_c28ed4b8a33c8c55_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_file_mime_type@
+hs_bindgen_c28ed4b8a33c8c55 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_c28ed4b8a33c8c55 =
+  BG.fromFFIType hs_bindgen_c28ed4b8a33c8c55_base
+
+{-# NOINLINE heif_get_file_mime_type #-}
+{-| __C declaration:__ @heif_get_file_mime_type@
+
+    __defined at:__ @libheif\/heif_brands.h 318:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_file_mime_type :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO (PtrConst.PtrConst BG.CChar))
+heif_get_file_mime_type =
+  BG.unsafePerformIO hs_bindgen_c28ed4b8a33c8c55
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_filetype@
+foreign import ccall unsafe "hs_bindgen_0fe4c4f41f0c7dc4" hs_bindgen_0fe4c4f41f0c7dc4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_filetype@
+hs_bindgen_0fe4c4f41f0c7dc4 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_filetype_result))
+hs_bindgen_0fe4c4f41f0c7dc4 =
+  BG.fromFFIType hs_bindgen_0fe4c4f41f0c7dc4_base
+
+{-# NOINLINE heif_check_filetype #-}
+{-| __C declaration:__ @heif_check_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 333:27@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_filetype :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_filetype_result)
+heif_check_filetype =
+  BG.unsafePerformIO hs_bindgen_0fe4c4f41f0c7dc4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_filetype@
+foreign import ccall unsafe "hs_bindgen_d4d9d9d8a49ecb76" hs_bindgen_d4d9d9d8a49ecb76_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_has_compatible_filetype@
+hs_bindgen_d4d9d9d8a49ecb76 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_error))
+hs_bindgen_d4d9d9d8a49ecb76 =
+  BG.fromFFIType hs_bindgen_d4d9d9d8a49ecb76_base
+
+{-# NOINLINE heif_has_compatible_filetype #-}
+{-| __C declaration:__ @heif_has_compatible_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 345:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_filetype :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_error)
+heif_has_compatible_filetype =
+  BG.unsafePerformIO hs_bindgen_d4d9d9d8a49ecb76
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_jpeg_filetype@
+foreign import ccall unsafe "hs_bindgen_772865916a7ca5b0" hs_bindgen_772865916a7ca5b0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_check_jpeg_filetype@
+hs_bindgen_772865916a7ca5b0 :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO BG.CInt))
+hs_bindgen_772865916a7ca5b0 =
+  BG.fromFFIType hs_bindgen_772865916a7ca5b0_base
+
+{-# NOINLINE heif_check_jpeg_filetype #-}
+{-| __C declaration:__ @heif_check_jpeg_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 348:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_jpeg_filetype :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO BG.CInt)
+heif_check_jpeg_filetype =
+  BG.unsafePerformIO hs_bindgen_772865916a7ca5b0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_main_brand@
+foreign import ccall unsafe "hs_bindgen_88607fe3b227821c" hs_bindgen_88607fe3b227821c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_main_brand@
+hs_bindgen_88607fe3b227821c :: IO (BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand))
+hs_bindgen_88607fe3b227821c =
+  BG.fromFFIType hs_bindgen_88607fe3b227821c_base
+
+{-# NOINLINE heif_main_brand #-}
+{-| __C declaration:__ @heif_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 379:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_main_brand :: BG.FunPtr (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8 -> BG.CInt -> IO Heif_brand)
+heif_main_brand =
+  BG.unsafePerformIO hs_bindgen_88607fe3b227821c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_metadata_compression_method_supported@
+foreign import ccall unsafe "hs_bindgen_bc74e7adb57c426e" hs_bindgen_bc74e7adb57c426e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_metadata_compression_method_supported@
+hs_bindgen_bc74e7adb57c426e :: IO (BG.FunPtr (Heif_metadata_compression -> IO BG.CInt))
+hs_bindgen_bc74e7adb57c426e =
+  BG.fromFFIType hs_bindgen_bc74e7adb57c426e_base
+
+{-# NOINLINE heif_metadata_compression_method_supported #-}
+{-| __C declaration:__ @heif_metadata_compression_method_supported@
+
+    __defined at:__ @libheif\/heif_metadata.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_metadata_compression_method_supported :: BG.FunPtr (Heif_metadata_compression -> IO BG.CInt)
+heif_metadata_compression_method_supported =
+  BG.unsafePerformIO hs_bindgen_bc74e7adb57c426e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_metadata_blocks@
+foreign import ccall unsafe "hs_bindgen_e0549656d912a02f" hs_bindgen_e0549656d912a02f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_metadata_blocks@
+hs_bindgen_e0549656d912a02f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO BG.CInt))
+hs_bindgen_e0549656d912a02f =
+  BG.fromFFIType hs_bindgen_e0549656d912a02f_base
+
+{-# NOINLINE heif_image_handle_get_number_of_metadata_blocks #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_metadata_blocks@
+
+    __defined at:__ @libheif\/heif_metadata.h 49:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_metadata_blocks :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO BG.CInt)
+heif_image_handle_get_number_of_metadata_blocks =
+  BG.unsafePerformIO hs_bindgen_e0549656d912a02f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_metadata_block_IDs@
+foreign import ccall unsafe "hs_bindgen_7704c832da7f6498" hs_bindgen_7704c832da7f6498_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_metadata_block_IDs@
+hs_bindgen_7704c832da7f6498 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_7704c832da7f6498 =
+  BG.fromFFIType hs_bindgen_7704c832da7f6498_base
+
+{-# NOINLINE heif_image_handle_get_list_of_metadata_block_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_metadata_block_IDs@
+
+    __defined at:__ @libheif\/heif_metadata.h 55:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_metadata_block_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_metadata_block_IDs =
+  BG.unsafePerformIO hs_bindgen_7704c832da7f6498
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_type@
+foreign import ccall unsafe "hs_bindgen_6a47d662d02a1849" hs_bindgen_6a47d662d02a1849_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_type@
+hs_bindgen_6a47d662d02a1849 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_6a47d662d02a1849 =
+  BG.fromFFIType hs_bindgen_6a47d662d02a1849_base
+
+{-# NOINLINE heif_image_handle_get_metadata_type #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 64:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_metadata_type =
+  BG.unsafePerformIO hs_bindgen_6a47d662d02a1849
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_content_type@
+foreign import ccall unsafe "hs_bindgen_ff3375cb079c2c8c" hs_bindgen_ff3375cb079c2c8c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_content_type@
+hs_bindgen_ff3375cb079c2c8c :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_ff3375cb079c2c8c =
+  BG.fromFFIType hs_bindgen_ff3375cb079c2c8c_base
+
+{-# NOINLINE heif_image_handle_get_metadata_content_type #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_content_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 70:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_content_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_metadata_content_type =
+  BG.unsafePerformIO hs_bindgen_ff3375cb079c2c8c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_size@
+foreign import ccall unsafe "hs_bindgen_8f416d9d0b388a20" hs_bindgen_8f416d9d0b388a20_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_size@
+hs_bindgen_8f416d9d0b388a20 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO HsBindgen.Runtime.LibC.CSize))
+hs_bindgen_8f416d9d0b388a20 =
+  BG.fromFFIType hs_bindgen_8f416d9d0b388a20_base
+
+{-# NOINLINE heif_image_handle_get_metadata_size #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_size@
+
+    __defined at:__ @libheif\/heif_metadata.h 75:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_size :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO HsBindgen.Runtime.LibC.CSize)
+heif_image_handle_get_metadata_size =
+  BG.unsafePerformIO hs_bindgen_8f416d9d0b388a20
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata@
+foreign import ccall unsafe "hs_bindgen_f28b5d476cc0344d" hs_bindgen_f28b5d476cc0344d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata@
+hs_bindgen_f28b5d476cc0344d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_f28b5d476cc0344d =
+  BG.fromFFIType hs_bindgen_f28b5d476cc0344d_base
+
+{-# NOINLINE heif_image_handle_get_metadata #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 83:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr BG.Void -> IO Heif_error)
+heif_image_handle_get_metadata =
+  BG.unsafePerformIO hs_bindgen_f28b5d476cc0344d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_item_uri_type@
+foreign import ccall unsafe "hs_bindgen_3de552206e29c05d" hs_bindgen_3de552206e29c05d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_metadata_item_uri_type@
+hs_bindgen_3de552206e29c05d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_3de552206e29c05d =
+  BG.fromFFIType hs_bindgen_3de552206e29c05d_base
+
+{-# NOINLINE heif_image_handle_get_metadata_item_uri_type #-}
+{-| __C declaration:__ @heif_image_handle_get_metadata_item_uri_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 89:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_item_uri_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_metadata_item_uri_type =
+  BG.unsafePerformIO hs_bindgen_3de552206e29c05d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_exif_metadata@
+foreign import ccall unsafe "hs_bindgen_5a7514f5b16eac4c" hs_bindgen_5a7514f5b16eac4c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_exif_metadata@
+hs_bindgen_5a7514f5b16eac4c :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error))
+hs_bindgen_5a7514f5b16eac4c =
+  BG.fromFFIType hs_bindgen_5a7514f5b16eac4c_base
+
+{-# NOINLINE heif_context_add_exif_metadata #-}
+{-| __C declaration:__ @heif_context_add_exif_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 96:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_exif_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error)
+heif_context_add_exif_metadata =
+  BG.unsafePerformIO hs_bindgen_5a7514f5b16eac4c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata@
+foreign import ccall unsafe "hs_bindgen_3a07a46632c07914" hs_bindgen_3a07a46632c07914_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata@
+hs_bindgen_3a07a46632c07914 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error))
+hs_bindgen_3a07a46632c07914 =
+  BG.fromFFIType hs_bindgen_3a07a46632c07914_base
+
+{-# NOINLINE heif_context_add_XMP_metadata #-}
+{-| __C declaration:__ @heif_context_add_XMP_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> IO Heif_error)
+heif_context_add_XMP_metadata =
+  BG.unsafePerformIO hs_bindgen_3a07a46632c07914
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata2@
+foreign import ccall unsafe "hs_bindgen_a68d252d2c832294" hs_bindgen_a68d252d2c832294_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_XMP_metadata2@
+hs_bindgen_a68d252d2c832294 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> Heif_metadata_compression -> IO Heif_error))
+hs_bindgen_a68d252d2c832294 =
+  BG.fromFFIType hs_bindgen_a68d252d2c832294_base
+
+{-# NOINLINE heif_context_add_XMP_metadata2 #-}
+{-| __C declaration:__ @heif_context_add_XMP_metadata2@
+
+    __defined at:__ @libheif\/heif_metadata.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata2 :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> Heif_metadata_compression -> IO Heif_error)
+heif_context_add_XMP_metadata2 =
+  BG.unsafePerformIO hs_bindgen_a68d252d2c832294
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_metadata@
+foreign import ccall unsafe "hs_bindgen_619dad01eb9c6d46" hs_bindgen_619dad01eb9c6d46_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_metadata@
+hs_bindgen_619dad01eb9c6d46 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_619dad01eb9c6d46 =
+  BG.fromFFIType hs_bindgen_619dad01eb9c6d46_base
+
+{-# NOINLINE heif_context_add_generic_metadata #-}
+{-| __C declaration:__ @heif_context_add_generic_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_context_add_generic_metadata =
+  BG.unsafePerformIO hs_bindgen_619dad01eb9c6d46
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_uri_metadata@
+foreign import ccall unsafe "hs_bindgen_58d33e372b6c6eae" hs_bindgen_58d33e372b6c6eae_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_generic_uri_metadata@
+hs_bindgen_58d33e372b6c6eae :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> IO Heif_error))
+hs_bindgen_58d33e372b6c6eae =
+  BG.fromFFIType hs_bindgen_58d33e372b6c6eae_base
+
+{-# NOINLINE heif_context_add_generic_uri_metadata #-}
+{-| __C declaration:__ @heif_context_add_generic_uri_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_uri_metadata :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst BG.Void -> BG.CInt -> PtrConst.PtrConst BG.CChar -> BG.Ptr Heif_item_id -> IO Heif_error)
+heif_context_add_generic_uri_metadata =
+  BG.unsafePerformIO hs_bindgen_58d33e372b6c6eae
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_depth_image@
+foreign import ccall unsafe "hs_bindgen_3cd06e15607887df" hs_bindgen_3cd06e15607887df_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_depth_image@
+hs_bindgen_3cd06e15607887df :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_3cd06e15607887df =
+  BG.fromFFIType hs_bindgen_3cd06e15607887df_base
+
+{-# NOINLINE heif_image_handle_has_depth_image #-}
+{-| __C declaration:__ @heif_image_handle_has_depth_image@
+
+    __defined at:__ @libheif\/heif_aux_images.h 39:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_depth_image :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_depth_image =
+  BG.unsafePerformIO hs_bindgen_3cd06e15607887df
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_depth_images@
+foreign import ccall unsafe "hs_bindgen_aa3619e2616c31b9" hs_bindgen_aa3619e2616c31b9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_depth_images@
+hs_bindgen_aa3619e2616c31b9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_aa3619e2616c31b9 =
+  BG.fromFFIType hs_bindgen_aa3619e2616c31b9_base
+
+{-# NOINLINE heif_image_handle_get_number_of_depth_images #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_depth_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_depth_images :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_number_of_depth_images =
+  BG.unsafePerformIO hs_bindgen_aa3619e2616c31b9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_depth_image_IDs@
+foreign import ccall unsafe "hs_bindgen_c7753ca6962a462d" hs_bindgen_c7753ca6962a462d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_depth_image_IDs@
+hs_bindgen_c7753ca6962a462d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_c7753ca6962a462d =
+  BG.fromFFIType hs_bindgen_c7753ca6962a462d_base
+
+{-# NOINLINE heif_image_handle_get_list_of_depth_image_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_depth_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 45:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_depth_image_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_depth_image_IDs =
+  BG.unsafePerformIO hs_bindgen_c7753ca6962a462d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_handle@
+foreign import ccall unsafe "hs_bindgen_c1ab9b65fc984e98" hs_bindgen_c1ab9b65fc984e98_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_handle@
+hs_bindgen_c1ab9b65fc984e98 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_c1ab9b65fc984e98 =
+  BG.fromFFIType hs_bindgen_c1ab9b65fc984e98_base
+
+{-# NOINLINE heif_image_handle_get_depth_image_handle #-}
+{-| __C declaration:__ @heif_image_handle_get_depth_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_handle :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_image_handle_get_depth_image_handle =
+  BG.unsafePerformIO hs_bindgen_c1ab9b65fc984e98
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_depth_representation_info_free@
+foreign import ccall unsafe "hs_bindgen_bfa498ceb1f388eb" hs_bindgen_bfa498ceb1f388eb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_depth_representation_info_free@
+hs_bindgen_bfa498ceb1f388eb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_depth_representation_info -> IO ()))
+hs_bindgen_bfa498ceb1f388eb =
+  BG.fromFFIType hs_bindgen_bfa498ceb1f388eb_base
+
+{-# NOINLINE heif_depth_representation_info_free #-}
+{-| __C declaration:__ @heif_depth_representation_info_free@
+
+    __defined at:__ @libheif\/heif_aux_images.h 87:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_depth_representation_info_free :: BG.FunPtr (PtrConst.PtrConst Heif_depth_representation_info -> IO ())
+heif_depth_representation_info_free =
+  BG.unsafePerformIO hs_bindgen_bfa498ceb1f388eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_representation_info@
+foreign import ccall unsafe "hs_bindgen_f7def4edb675f3a7" hs_bindgen_f7def4edb675f3a7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_depth_image_representation_info@
+hs_bindgen_f7def4edb675f3a7 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info) -> IO BG.CInt))
+hs_bindgen_f7def4edb675f3a7 =
+  BG.fromFFIType hs_bindgen_f7def4edb675f3a7_base
+
+{-# NOINLINE heif_image_handle_get_depth_image_representation_info #-}
+{-| __C declaration:__ @heif_image_handle_get_depth_image_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 95:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_representation_info :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info) -> IO BG.CInt)
+heif_image_handle_get_depth_image_representation_info =
+  BG.unsafePerformIO hs_bindgen_f7def4edb675f3a7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_thumbnails@
+foreign import ccall unsafe "hs_bindgen_388a83c522945b96" hs_bindgen_388a83c522945b96_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_thumbnails@
+hs_bindgen_388a83c522945b96 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_388a83c522945b96 =
+  BG.fromFFIType hs_bindgen_388a83c522945b96_base
+
+{-# NOINLINE heif_image_handle_get_number_of_thumbnails #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_thumbnails@
+
+    __defined at:__ @libheif\/heif_aux_images.h 105:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_thumbnails :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_number_of_thumbnails =
+  BG.unsafePerformIO hs_bindgen_388a83c522945b96
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_thumbnail_IDs@
+foreign import ccall unsafe "hs_bindgen_c9977cfc42d63a17" hs_bindgen_c9977cfc42d63a17_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_thumbnail_IDs@
+hs_bindgen_c9977cfc42d63a17 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_c9977cfc42d63a17 =
+  BG.fromFFIType hs_bindgen_c9977cfc42d63a17_base
+
+{-# NOINLINE heif_image_handle_get_list_of_thumbnail_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_thumbnail_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 108:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_thumbnail_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_thumbnail_IDs =
+  BG.unsafePerformIO hs_bindgen_c9977cfc42d63a17
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_thumbnail@
+foreign import ccall unsafe "hs_bindgen_7b4335dfc28e8e80" hs_bindgen_7b4335dfc28e8e80_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_thumbnail@
+hs_bindgen_7b4335dfc28e8e80 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_7b4335dfc28e8e80 =
+  BG.fromFFIType hs_bindgen_7b4335dfc28e8e80_base
+
+{-# NOINLINE heif_image_handle_get_thumbnail #-}
+{-| __C declaration:__ @heif_image_handle_get_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 113:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_thumbnail :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_image_handle_get_thumbnail =
+  BG.unsafePerformIO hs_bindgen_7b4335dfc28e8e80
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_thumbnail@
+foreign import ccall unsafe "hs_bindgen_492f9a0d3f555649" hs_bindgen_492f9a0d3f555649_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_thumbnail@
+hs_bindgen_492f9a0d3f555649 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.CInt -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_492f9a0d3f555649 =
+  BG.fromFFIType hs_bindgen_492f9a0d3f555649_base
+
+{-# NOINLINE heif_context_encode_thumbnail #-}
+{-| __C declaration:__ @heif_context_encode_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_thumbnail :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.CInt -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_encode_thumbnail =
+  BG.unsafePerformIO hs_bindgen_492f9a0d3f555649
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_assign_thumbnail@
+foreign import ccall unsafe "hs_bindgen_d6beebdf16f8801e" hs_bindgen_d6beebdf16f8801e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_assign_thumbnail@
+hs_bindgen_d6beebdf16f8801e :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_image_handle -> IO Heif_error))
+hs_bindgen_d6beebdf16f8801e =
+  BG.fromFFIType hs_bindgen_d6beebdf16f8801e_base
+
+{-# NOINLINE heif_context_assign_thumbnail #-}
+{-| __C declaration:__ @heif_context_assign_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 136:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_assign_thumbnail :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image_handle -> PtrConst.PtrConst Heif_image_handle -> IO Heif_error)
+heif_context_assign_thumbnail =
+  BG.unsafePerformIO hs_bindgen_d6beebdf16f8801e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_auxiliary_images@
+foreign import ccall unsafe "hs_bindgen_fbf5259f8601a805" hs_bindgen_fbf5259f8601a805_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_auxiliary_images@
+hs_bindgen_fbf5259f8601a805 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> IO BG.CInt))
+hs_bindgen_fbf5259f8601a805 =
+  BG.fromFFIType hs_bindgen_fbf5259f8601a805_base
+
+{-# NOINLINE heif_image_handle_get_number_of_auxiliary_images #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_auxiliary_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_auxiliary_images :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_number_of_auxiliary_images =
+  BG.unsafePerformIO hs_bindgen_fbf5259f8601a805
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_auxiliary_image_IDs@
+foreign import ccall unsafe "hs_bindgen_52a5c3a1d8bf248a" hs_bindgen_52a5c3a1d8bf248a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_list_of_auxiliary_image_IDs@
+hs_bindgen_52a5c3a1d8bf248a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_52a5c3a1d8bf248a =
+  BG.fromFFIType hs_bindgen_52a5c3a1d8bf248a_base
+
+{-# NOINLINE heif_image_handle_get_list_of_auxiliary_image_IDs #-}
+{-| __C declaration:__ @heif_image_handle_get_list_of_auxiliary_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 152:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_auxiliary_image_IDs :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_image_handle_get_list_of_auxiliary_image_IDs =
+  BG.unsafePerformIO hs_bindgen_52a5c3a1d8bf248a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_2806604f6185b8f8" hs_bindgen_2806604f6185b8f8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_type@
+hs_bindgen_2806604f6185b8f8 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO Heif_error))
+hs_bindgen_2806604f6185b8f8 =
+  BG.fromFFIType hs_bindgen_2806604f6185b8f8_base
+
+{-# NOINLINE heif_image_handle_get_auxiliary_type #-}
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 158:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO Heif_error)
+heif_image_handle_get_auxiliary_type =
+  BG.unsafePerformIO hs_bindgen_2806604f6185b8f8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_c6d7022e030cb190" hs_bindgen_c6d7022e030cb190_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release_auxiliary_type@
+hs_bindgen_c6d7022e030cb190 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ()))
+hs_bindgen_c6d7022e030cb190 =
+  BG.fromFFIType hs_bindgen_c6d7022e030cb190_base
+
+{-# NOINLINE heif_image_handle_release_auxiliary_type #-}
+{-| __C declaration:__ @heif_image_handle_release_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 162:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release_auxiliary_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ())
+heif_image_handle_release_auxiliary_type =
+  BG.unsafePerformIO hs_bindgen_c6d7022e030cb190
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_image_handle@
+foreign import ccall unsafe "hs_bindgen_3d5ece2e0e4e63a9" hs_bindgen_3d5ece2e0e4e63a9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_auxiliary_image_handle@
+hs_bindgen_3d5ece2e0e4e63a9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_3d5ece2e0e4e63a9 =
+  BG.fromFFIType hs_bindgen_3d5ece2e0e4e63a9_base
+
+{-# NOINLINE heif_image_handle_get_auxiliary_image_handle #-}
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_image_handle :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_image_handle_get_auxiliary_image_handle =
+  BG.unsafePerformIO hs_bindgen_3d5ece2e0e4e63a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_free_auxiliary_types@
+foreign import ccall unsafe "hs_bindgen_e653c638946083c6" hs_bindgen_e653c638946083c6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_free_auxiliary_types@
+hs_bindgen_e653c638946083c6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ()))
+hs_bindgen_e653c638946083c6 =
+  BG.fromFFIType hs_bindgen_e653c638946083c6_base
+
+{-# NOINLINE heif_image_handle_free_auxiliary_types #-}
+{-| __C declaration:__ @heif_image_handle_free_auxiliary_types@
+
+    __defined at:__ @libheif\/heif_aux_images.h 175:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_free_auxiliary_types :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (PtrConst.PtrConst BG.CChar) -> IO ())
+heif_image_handle_free_auxiliary_types =
+  BG.unsafePerformIO hs_bindgen_e653c638946083c6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_entity_groups@
+foreign import ccall unsafe "hs_bindgen_631e87ff99030866" hs_bindgen_631e87ff99030866_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_entity_groups@
+hs_bindgen_631e87ff99030866 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_context -> HsBindgen.Runtime.LibC.Word32 -> Heif_item_id -> BG.Ptr BG.CInt -> IO (BG.Ptr Heif_entity_group)))
+hs_bindgen_631e87ff99030866 =
+  BG.fromFFIType hs_bindgen_631e87ff99030866_base
+
+{-# NOINLINE heif_context_get_entity_groups #-}
+{-| __C declaration:__ @heif_context_get_entity_groups@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 46:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_entity_groups :: BG.FunPtr (PtrConst.PtrConst Heif_context -> HsBindgen.Runtime.LibC.Word32 -> Heif_item_id -> BG.Ptr BG.CInt -> IO (BG.Ptr Heif_entity_group))
+heif_context_get_entity_groups =
+  BG.unsafePerformIO hs_bindgen_631e87ff99030866
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_entity_groups_release@
+foreign import ccall unsafe "hs_bindgen_dff5ea5157033446" hs_bindgen_dff5ea5157033446_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_entity_groups_release@
+hs_bindgen_dff5ea5157033446 :: IO (BG.FunPtr (BG.Ptr Heif_entity_group -> BG.CInt -> IO ()))
+hs_bindgen_dff5ea5157033446 =
+  BG.fromFFIType hs_bindgen_dff5ea5157033446_base
+
+{-# NOINLINE heif_entity_groups_release #-}
+{-| __C declaration:__ @heif_entity_groups_release@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 53:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_entity_groups_release :: BG.FunPtr (BG.Ptr Heif_entity_group -> BG.CInt -> IO ())
+heif_entity_groups_release =
+  BG.unsafePerformIO hs_bindgen_dff5ea5157033446
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_global_security_limits@
+foreign import ccall unsafe "hs_bindgen_513834deee887311" hs_bindgen_513834deee887311_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_global_security_limits@
+hs_bindgen_513834deee887311 :: IO (BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits)))
+hs_bindgen_513834deee887311 =
+  BG.fromFFIType hs_bindgen_513834deee887311_base
+
+{-# NOINLINE heif_get_global_security_limits #-}
+{-| __C declaration:__ @heif_get_global_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 94:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_global_security_limits :: BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits))
+heif_get_global_security_limits =
+  BG.unsafePerformIO hs_bindgen_513834deee887311
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_disabled_security_limits@
+foreign import ccall unsafe "hs_bindgen_9841ea4e972c1a98" hs_bindgen_9841ea4e972c1a98_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_disabled_security_limits@
+hs_bindgen_9841ea4e972c1a98 :: IO (BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits)))
+hs_bindgen_9841ea4e972c1a98 =
+  BG.fromFFIType hs_bindgen_9841ea4e972c1a98_base
+
+{-# NOINLINE heif_get_disabled_security_limits #-}
+{-| __C declaration:__ @heif_get_disabled_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 98:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_disabled_security_limits :: BG.FunPtr (IO (PtrConst.PtrConst Heif_security_limits))
+heif_get_disabled_security_limits =
+  BG.unsafePerformIO hs_bindgen_9841ea4e972c1a98
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_security_limits@
+foreign import ccall unsafe "hs_bindgen_79af356ea84ef299" hs_bindgen_79af356ea84ef299_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_security_limits@
+hs_bindgen_79af356ea84ef299 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_context -> IO (BG.Ptr Heif_security_limits)))
+hs_bindgen_79af356ea84ef299 =
+  BG.fromFFIType hs_bindgen_79af356ea84ef299_base
+
+{-# NOINLINE heif_context_get_security_limits #-}
+{-| __C declaration:__ @heif_context_get_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 103:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_security_limits :: BG.FunPtr (PtrConst.PtrConst Heif_context -> IO (BG.Ptr Heif_security_limits))
+heif_context_get_security_limits =
+  BG.unsafePerformIO hs_bindgen_79af356ea84ef299
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_security_limits@
+foreign import ccall unsafe "hs_bindgen_79e7cc69a856ca88" hs_bindgen_79e7cc69a856ca88_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_security_limits@
+hs_bindgen_79e7cc69a856ca88 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error))
+hs_bindgen_79e7cc69a856ca88 =
+  BG.fromFFIType hs_bindgen_79e7cc69a856ca88_base
+
+{-# NOINLINE heif_context_set_security_limits #-}
+{-| __C declaration:__ @heif_context_set_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_security_limits :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_security_limits -> IO Heif_error)
+heif_context_set_security_limits =
+  BG.unsafePerformIO hs_bindgen_79e7cc69a856ca88
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_maximum_image_size_limit@
+foreign import ccall unsafe "hs_bindgen_70c7f35fa6d1722f" hs_bindgen_70c7f35fa6d1722f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_maximum_image_size_limit@
+hs_bindgen_70c7f35fa6d1722f :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_70c7f35fa6d1722f =
+  BG.fromFFIType hs_bindgen_70c7f35fa6d1722f_base
+
+{-# NOINLINE heif_context_set_maximum_image_size_limit #-}
+{-| __C declaration:__ @heif_context_set_maximum_image_size_limit@
+
+    __defined at:__ @libheif\/heif_security.h 117:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_maximum_image_size_limit :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_maximum_image_size_limit =
+  BG.unsafePerformIO hs_bindgen_70c7f35fa6d1722f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_alloc@
+foreign import ccall unsafe "hs_bindgen_bd908a73a9cd1c97" hs_bindgen_bd908a73a9cd1c97_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_alloc@
+hs_bindgen_bd908a73a9cd1c97 :: IO (BG.FunPtr (IO (BG.Ptr Heif_context)))
+hs_bindgen_bd908a73a9cd1c97 =
+  BG.fromFFIType hs_bindgen_bd908a73a9cd1c97_base
+
+{-# NOINLINE heif_context_alloc #-}
+{-| __C declaration:__ @heif_context_alloc@
+
+    __defined at:__ @libheif\/heif_context.h 130:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_alloc :: BG.FunPtr (IO (BG.Ptr Heif_context))
+heif_context_alloc =
+  BG.unsafePerformIO hs_bindgen_bd908a73a9cd1c97
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_free@
+foreign import ccall unsafe "hs_bindgen_7e7ac4562d12dc38" hs_bindgen_7e7ac4562d12dc38_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_free@
+hs_bindgen_7e7ac4562d12dc38 :: IO (BG.FunPtr (BG.Ptr Heif_context -> IO ()))
+hs_bindgen_7e7ac4562d12dc38 =
+  BG.fromFFIType hs_bindgen_7e7ac4562d12dc38_base
+
+{-# NOINLINE heif_context_free #-}
+{-| __C declaration:__ @heif_context_free@
+
+    __defined at:__ @libheif\/heif_context.h 134:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_free :: BG.FunPtr (BG.Ptr Heif_context -> IO ())
+heif_context_free =
+  BG.unsafePerformIO hs_bindgen_7e7ac4562d12dc38
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_file@
+foreign import ccall unsafe "hs_bindgen_7b3d06c1227d3049" hs_bindgen_7b3d06c1227d3049_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_file@
+hs_bindgen_7b3d06c1227d3049 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_7b3d06c1227d3049 =
+  BG.fromFFIType hs_bindgen_7b3d06c1227d3049_base
+
+{-# NOINLINE heif_context_read_from_file #-}
+{-| __C declaration:__ @heif_context_read_from_file@
+
+    __defined at:__ @libheif\/heif_context.h 237:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_file :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_file =
+  BG.unsafePerformIO hs_bindgen_7b3d06c1227d3049
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory@
+foreign import ccall unsafe "hs_bindgen_fd7f2a7e1900e79b" hs_bindgen_fd7f2a7e1900e79b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory@
+hs_bindgen_fd7f2a7e1900e79b :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_fd7f2a7e1900e79b =
+  BG.fromFFIType hs_bindgen_fd7f2a7e1900e79b_base
+
+{-# NOINLINE heif_context_read_from_memory #-}
+{-| __C declaration:__ @heif_context_read_from_memory@
+
+    __defined at:__ @libheif\/heif_context.h 244:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_memory =
+  BG.unsafePerformIO hs_bindgen_fd7f2a7e1900e79b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory_without_copy@
+foreign import ccall unsafe "hs_bindgen_ead5dd2b26474984" hs_bindgen_ead5dd2b26474984_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_memory_without_copy@
+hs_bindgen_ead5dd2b26474984 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_ead5dd2b26474984 =
+  BG.fromFFIType hs_bindgen_ead5dd2b26474984_base
+
+{-# NOINLINE heif_context_read_from_memory_without_copy #-}
+{-| __C declaration:__ @heif_context_read_from_memory_without_copy@
+
+    __defined at:__ @libheif\/heif_context.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory_without_copy :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.Void -> HsBindgen.Runtime.LibC.CSize -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_memory_without_copy =
+  BG.unsafePerformIO hs_bindgen_ead5dd2b26474984
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_reader@
+foreign import ccall unsafe "hs_bindgen_46205cdd2b194712" hs_bindgen_46205cdd2b194712_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_read_from_reader@
+hs_bindgen_46205cdd2b194712 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_reader -> BG.Ptr BG.Void -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error))
+hs_bindgen_46205cdd2b194712 =
+  BG.fromFFIType hs_bindgen_46205cdd2b194712_base
+
+{-# NOINLINE heif_context_read_from_reader #-}
+{-| __C declaration:__ @heif_context_read_from_reader@
+
+    __defined at:__ @libheif\/heif_context.h 256:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_reader :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_reader -> BG.Ptr BG.Void -> PtrConst.PtrConst Heif_reading_options -> IO Heif_error)
+heif_context_read_from_reader =
+  BG.unsafePerformIO hs_bindgen_46205cdd2b194712
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_number_of_top_level_images@
+foreign import ccall unsafe "hs_bindgen_7d9f8f6a11d1d0b3" hs_bindgen_7d9f8f6a11d1d0b3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_number_of_top_level_images@
+hs_bindgen_7d9f8f6a11d1d0b3 :: IO (BG.FunPtr (BG.Ptr Heif_context -> IO BG.CInt))
+hs_bindgen_7d9f8f6a11d1d0b3 =
+  BG.fromFFIType hs_bindgen_7d9f8f6a11d1d0b3_base
+
+{-# NOINLINE heif_context_get_number_of_top_level_images #-}
+{-| __C declaration:__ @heif_context_get_number_of_top_level_images@
+
+    __defined at:__ @libheif\/heif_context.h 265:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_number_of_top_level_images :: BG.FunPtr (BG.Ptr Heif_context -> IO BG.CInt)
+heif_context_get_number_of_top_level_images =
+  BG.unsafePerformIO hs_bindgen_7d9f8f6a11d1d0b3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_is_top_level_image_ID@
+foreign import ccall unsafe "hs_bindgen_8c9ac942d92215db" hs_bindgen_8c9ac942d92215db_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_is_top_level_image_ID@
+hs_bindgen_8c9ac942d92215db :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> IO BG.CInt))
+hs_bindgen_8c9ac942d92215db =
+  BG.fromFFIType hs_bindgen_8c9ac942d92215db_base
+
+{-# NOINLINE heif_context_is_top_level_image_ID #-}
+{-| __C declaration:__ @heif_context_is_top_level_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 268:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_is_top_level_image_ID :: BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> IO BG.CInt)
+heif_context_is_top_level_image_ID =
+  BG.unsafePerformIO hs_bindgen_8c9ac942d92215db
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_list_of_top_level_image_IDs@
+foreign import ccall unsafe "hs_bindgen_8300165269c133fb" hs_bindgen_8300165269c133fb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_list_of_top_level_image_IDs@
+hs_bindgen_8300165269c133fb :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt))
+hs_bindgen_8300165269c133fb =
+  BG.fromFFIType hs_bindgen_8300165269c133fb_base
+
+{-# NOINLINE heif_context_get_list_of_top_level_image_IDs #-}
+{-| __C declaration:__ @heif_context_get_list_of_top_level_image_IDs@
+
+    __defined at:__ @libheif\/heif_context.h 273:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_list_of_top_level_image_IDs :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> BG.CInt -> IO BG.CInt)
+heif_context_get_list_of_top_level_image_IDs =
+  BG.unsafePerformIO hs_bindgen_8300165269c133fb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_ID@
+foreign import ccall unsafe "hs_bindgen_0d98fd3ca84ab54a" hs_bindgen_0d98fd3ca84ab54a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_ID@
+hs_bindgen_0d98fd3ca84ab54a :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> IO Heif_error))
+hs_bindgen_0d98fd3ca84ab54a =
+  BG.fromFFIType hs_bindgen_0d98fd3ca84ab54a_base
+
+{-# NOINLINE heif_context_get_primary_image_ID #-}
+{-| __C declaration:__ @heif_context_get_primary_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 278:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_ID :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_item_id -> IO Heif_error)
+heif_context_get_primary_image_ID =
+  BG.unsafePerformIO hs_bindgen_0d98fd3ca84ab54a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_handle@
+foreign import ccall unsafe "hs_bindgen_960524c654a2bcef" hs_bindgen_960524c654a2bcef_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_primary_image_handle@
+hs_bindgen_960524c654a2bcef :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_960524c654a2bcef =
+  BG.fromFFIType hs_bindgen_960524c654a2bcef_base
+
+{-# NOINLINE heif_context_get_primary_image_handle #-}
+{-| __C declaration:__ @heif_context_get_primary_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 283:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_handle :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_get_primary_image_handle =
+  BG.unsafePerformIO hs_bindgen_960524c654a2bcef
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_image_handle@
+foreign import ccall unsafe "hs_bindgen_398d616a73d2c66e" hs_bindgen_398d616a73d2c66e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_image_handle@
+hs_bindgen_398d616a73d2c66e :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_398d616a73d2c66e =
+  BG.fromFFIType hs_bindgen_398d616a73d2c66e_base
+
+{-# NOINLINE heif_context_get_image_handle #-}
+{-| __C declaration:__ @heif_context_get_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 288:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_image_handle :: BG.FunPtr (BG.Ptr Heif_context -> Heif_item_id -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_get_image_handle =
+  BG.unsafePerformIO hs_bindgen_398d616a73d2c66e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_debug_dump_boxes_to_file@
+foreign import ccall unsafe "hs_bindgen_8a216f7524a20aca" hs_bindgen_8a216f7524a20aca_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_debug_dump_boxes_to_file@
+hs_bindgen_8a216f7524a20aca :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_8a216f7524a20aca =
+  BG.fromFFIType hs_bindgen_8a216f7524a20aca_base
+
+{-# NOINLINE heif_context_debug_dump_boxes_to_file #-}
+{-| __C declaration:__ @heif_context_debug_dump_boxes_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 296:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_debug_dump_boxes_to_file :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_debug_dump_boxes_to_file =
+  BG.unsafePerformIO hs_bindgen_8a216f7524a20aca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_write_mini_format@
+foreign import ccall unsafe "hs_bindgen_15394ba4caf334ce" hs_bindgen_15394ba4caf334ce_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_write_mini_format@
+hs_bindgen_15394ba4caf334ce :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_15394ba4caf334ce =
+  BG.fromFFIType hs_bindgen_15394ba4caf334ce_base
+
+{-# NOINLINE heif_context_set_write_mini_format #-}
+{-| __C declaration:__ @heif_context_set_write_mini_format@
+
+    __defined at:__ @libheif\/heif_context.h 309:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_write_mini_format :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_write_mini_format =
+  BG.unsafePerformIO hs_bindgen_15394ba4caf334ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write_to_file@
+foreign import ccall unsafe "hs_bindgen_f73779d349ac09bf" hs_bindgen_f73779d349ac09bf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write_to_file@
+hs_bindgen_f73779d349ac09bf :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_f73779d349ac09bf =
+  BG.fromFFIType hs_bindgen_f73779d349ac09bf_base
+
+{-# NOINLINE heif_context_write_to_file #-}
+{-| __C declaration:__ @heif_context_write_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 316:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write_to_file :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_context_write_to_file =
+  BG.unsafePerformIO hs_bindgen_f73779d349ac09bf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write@
+foreign import ccall unsafe "hs_bindgen_c9c017704fa40d19" hs_bindgen_c9c017704fa40d19_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_write@
+hs_bindgen_c9c017704fa40d19 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_writer -> BG.Ptr BG.Void -> IO Heif_error))
+hs_bindgen_c9c017704fa40d19 =
+  BG.fromFFIType hs_bindgen_c9c017704fa40d19_base
+
+{-# NOINLINE heif_context_write #-}
+{-| __C declaration:__ @heif_context_write@
+
+    __defined at:__ @libheif\/heif_context.h 335:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_writer -> BG.Ptr BG.Void -> IO Heif_error)
+heif_context_write =
+  BG.unsafePerformIO hs_bindgen_c9c017704fa40d19
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_19218fb783c96539" hs_bindgen_19218fb783c96539_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_encoder_for_format@
+hs_bindgen_19218fb783c96539 :: IO (BG.FunPtr (Heif_compression_format -> IO BG.CInt))
+hs_bindgen_19218fb783c96539 =
+  BG.fromFFIType hs_bindgen_19218fb783c96539_base
+
+{-# NOINLINE heif_have_encoder_for_format #-}
+{-| __C declaration:__ @heif_have_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 63:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_encoder_for_format :: BG.FunPtr (Heif_compression_format -> IO BG.CInt)
+heif_have_encoder_for_format =
+  BG.unsafePerformIO hs_bindgen_19218fb783c96539
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_49fc5cfaef4436f7" hs_bindgen_49fc5cfaef4436f7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_encoder_descriptors@
+hs_bindgen_49fc5cfaef4436f7 :: IO (BG.FunPtr (Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt))
+hs_bindgen_49fc5cfaef4436f7 =
+  BG.fromFFIType hs_bindgen_49fc5cfaef4436f7_base
+
+{-# NOINLINE heif_get_encoder_descriptors #-}
+{-| __C declaration:__ @heif_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 72:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_encoder_descriptors :: BG.FunPtr (Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt)
+heif_get_encoder_descriptors =
+  BG.unsafePerformIO hs_bindgen_49fc5cfaef4436f7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_cddd49c618fa6467" hs_bindgen_cddd49c618fa6467_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_name@
+hs_bindgen_cddd49c618fa6467 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_cddd49c618fa6467 =
+  BG.fromFFIType hs_bindgen_cddd49c618fa6467_base
+
+{-# NOINLINE heif_encoder_descriptor_get_name #-}
+{-| __C declaration:__ @heif_encoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 79:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_descriptor_get_name =
+  BG.unsafePerformIO hs_bindgen_cddd49c618fa6467
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_08451a95e7fb6e4d" hs_bindgen_08451a95e7fb6e4d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_id_name@
+hs_bindgen_08451a95e7fb6e4d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_08451a95e7fb6e4d =
+  BG.fromFFIType hs_bindgen_08451a95e7fb6e4d_base
+
+{-# NOINLINE heif_encoder_descriptor_get_id_name #-}
+{-| __C declaration:__ @heif_encoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 84:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_id_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_descriptor_get_id_name =
+  BG.unsafePerformIO hs_bindgen_08451a95e7fb6e4d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_compression_format@
+foreign import ccall unsafe "hs_bindgen_e5339b28bc83fbca" hs_bindgen_e5339b28bc83fbca_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_get_compression_format@
+hs_bindgen_e5339b28bc83fbca :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO Heif_compression_format))
+hs_bindgen_e5339b28bc83fbca =
+  BG.fromFFIType hs_bindgen_e5339b28bc83fbca_base
+
+{-# NOINLINE heif_encoder_descriptor_get_compression_format #-}
+{-| __C declaration:__ @heif_encoder_descriptor_get_compression_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 88:1@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_compression_format :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO Heif_compression_format)
+heif_encoder_descriptor_get_compression_format =
+  BG.unsafePerformIO hs_bindgen_e5339b28bc83fbca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_7ad6908eba03875a" hs_bindgen_7ad6908eba03875a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossy_compression@
+hs_bindgen_7ad6908eba03875a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_7ad6908eba03875a =
+  BG.fromFFIType hs_bindgen_7ad6908eba03875a_base
+
+{-# NOINLINE heif_encoder_descriptor_supports_lossy_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 91:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossy_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supports_lossy_compression =
+  BG.unsafePerformIO hs_bindgen_7ad6908eba03875a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_ae06a426df892191" hs_bindgen_ae06a426df892191_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supports_lossless_compression@
+hs_bindgen_ae06a426df892191 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_ae06a426df892191 =
+  BG.fromFFIType hs_bindgen_ae06a426df892191_base
+
+{-# NOINLINE heif_encoder_descriptor_supports_lossless_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 94:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossless_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supports_lossless_compression =
+  BG.unsafePerformIO hs_bindgen_ae06a426df892191
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder@
+foreign import ccall unsafe "hs_bindgen_007a504ee5520689" hs_bindgen_007a504ee5520689_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder@
+hs_bindgen_007a504ee5520689 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_encoder_descriptor -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error))
+hs_bindgen_007a504ee5520689 =
+  BG.fromFFIType hs_bindgen_007a504ee5520689_base
+
+{-# NOINLINE heif_context_get_encoder #-}
+{-| __C declaration:__ @heif_context_get_encoder@
+
+    __defined at:__ @libheif\/heif_encoding.h 99:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_encoder_descriptor -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error)
+heif_context_get_encoder =
+  BG.unsafePerformIO hs_bindgen_007a504ee5520689
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_9f20d0bc6d1e9792" hs_bindgen_9f20d0bc6d1e9792_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_for_format@
+hs_bindgen_9f20d0bc6d1e9792 :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error))
+hs_bindgen_9f20d0bc6d1e9792 =
+  BG.fromFFIType hs_bindgen_9f20d0bc6d1e9792_base
+
+{-# NOINLINE heif_context_get_encoder_for_format #-}
+{-| __C declaration:__ @heif_context_get_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 106:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_for_format :: BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> BG.Ptr (BG.Ptr Heif_encoder) -> IO Heif_error)
+heif_context_get_encoder_for_format =
+  BG.unsafePerformIO hs_bindgen_9f20d0bc6d1e9792
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_release@
+foreign import ccall unsafe "hs_bindgen_e2c3d8f3b52f1fe3" hs_bindgen_e2c3d8f3b52f1fe3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_release@
+hs_bindgen_e2c3d8f3b52f1fe3 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> IO ()))
+hs_bindgen_e2c3d8f3b52f1fe3 =
+  BG.fromFFIType hs_bindgen_e2c3d8f3b52f1fe3_base
+
+{-# NOINLINE heif_encoder_release #-}
+{-| __C declaration:__ @heif_encoder_release@
+
+    __defined at:__ @libheif\/heif_encoding.h 114:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_release :: BG.FunPtr (BG.Ptr Heif_encoder -> IO ())
+heif_encoder_release =
+  BG.unsafePerformIO hs_bindgen_e2c3d8f3b52f1fe3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_name@
+foreign import ccall unsafe "hs_bindgen_ee9152d12b81ac2d" hs_bindgen_ee9152d12b81ac2d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_name@
+hs_bindgen_ee9152d12b81ac2d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_ee9152d12b81ac2d =
+  BG.fromFFIType hs_bindgen_ee9152d12b81ac2d_base
+
+{-# NOINLINE heif_encoder_get_name #-}
+{-| __C declaration:__ @heif_encoder_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 118:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_get_name =
+  BG.unsafePerformIO hs_bindgen_ee9152d12b81ac2d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossy_quality@
+foreign import ccall unsafe "hs_bindgen_19895ed41764990f" hs_bindgen_19895ed41764990f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossy_quality@
+hs_bindgen_19895ed41764990f :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error))
+hs_bindgen_19895ed41764990f =
+  BG.fromFFIType hs_bindgen_19895ed41764990f_base
+
+{-# NOINLINE heif_encoder_set_lossy_quality #-}
+{-| __C declaration:__ @heif_encoder_set_lossy_quality@
+
+    __defined at:__ @libheif\/heif_encoding.h 134:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossy_quality :: BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error)
+heif_encoder_set_lossy_quality =
+  BG.unsafePerformIO hs_bindgen_19895ed41764990f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossless@
+foreign import ccall unsafe "hs_bindgen_9c9779dea220b374" hs_bindgen_9c9779dea220b374_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_lossless@
+hs_bindgen_9c9779dea220b374 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error))
+hs_bindgen_9c9779dea220b374 =
+  BG.fromFFIType hs_bindgen_9c9779dea220b374_base
+
+{-# NOINLINE heif_encoder_set_lossless #-}
+{-| __C declaration:__ @heif_encoder_set_lossless@
+
+    __defined at:__ @libheif\/heif_encoding.h 137:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossless :: BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error)
+heif_encoder_set_lossless =
+  BG.unsafePerformIO hs_bindgen_9c9779dea220b374
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_logging_level@
+foreign import ccall unsafe "hs_bindgen_964eca1706d5e05d" hs_bindgen_964eca1706d5e05d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_logging_level@
+hs_bindgen_964eca1706d5e05d :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error))
+hs_bindgen_964eca1706d5e05d =
+  BG.fromFFIType hs_bindgen_964eca1706d5e05d_base
+
+{-# NOINLINE heif_encoder_set_logging_level #-}
+{-| __C declaration:__ @heif_encoder_set_logging_level@
+
+    __defined at:__ @libheif\/heif_encoding.h 141:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_logging_level :: BG.FunPtr (BG.Ptr Heif_encoder -> BG.CInt -> IO Heif_error)
+heif_encoder_set_logging_level =
+  BG.unsafePerformIO hs_bindgen_964eca1706d5e05d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_list_parameters@
+foreign import ccall unsafe "hs_bindgen_b1199cd8648209be" hs_bindgen_b1199cd8648209be_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_list_parameters@
+hs_bindgen_b1199cd8648209be :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))))
+hs_bindgen_b1199cd8648209be =
+  BG.fromFFIType hs_bindgen_b1199cd8648209be_base
+
+{-# NOINLINE heif_encoder_list_parameters #-}
+{-| __C declaration:__ @heif_encoder_list_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 147:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_list_parameters :: BG.FunPtr (BG.Ptr Heif_encoder -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter)))
+heif_encoder_list_parameters =
+  BG.unsafePerformIO hs_bindgen_b1199cd8648209be
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_name@
+foreign import ccall unsafe "hs_bindgen_d6e627b5fca93233" hs_bindgen_d6e627b5fca93233_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_name@
+hs_bindgen_d6e627b5fca93233 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_d6e627b5fca93233 =
+  BG.fromFFIType hs_bindgen_d6e627b5fca93233_base
+
+{-# NOINLINE heif_encoder_parameter_get_name #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 151:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO (PtrConst.PtrConst BG.CChar))
+heif_encoder_parameter_get_name =
+  BG.unsafePerformIO hs_bindgen_d6e627b5fca93233
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_type@
+foreign import ccall unsafe "hs_bindgen_980079513f87c118" hs_bindgen_980079513f87c118_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_type@
+hs_bindgen_980079513f87c118 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO Heif_encoder_parameter_type))
+hs_bindgen_980079513f87c118 =
+  BG.fromFFIType hs_bindgen_980079513f87c118_base
+
+{-# NOINLINE heif_encoder_parameter_get_type #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 163:34@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_type :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> IO Heif_encoder_parameter_type)
+heif_encoder_parameter_get_type =
+  BG.unsafePerformIO hs_bindgen_980079513f87c118
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_range@
+foreign import ccall unsafe "hs_bindgen_6a3070253dfc382e" hs_bindgen_6a3070253dfc382e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_range@
+hs_bindgen_6a3070253dfc382e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_6a3070253dfc382e =
+  BG.fromFFIType hs_bindgen_6a3070253dfc382e_base
+
+{-# NOINLINE heif_encoder_parameter_get_valid_integer_range #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_range :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_parameter_get_valid_integer_range =
+  BG.unsafePerformIO hs_bindgen_6a3070253dfc382e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_values@
+foreign import ccall unsafe "hs_bindgen_067b5b207b483c5d" hs_bindgen_067b5b207b483c5d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_integer_values@
+hs_bindgen_067b5b207b483c5d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error))
+hs_bindgen_067b5b207b483c5d =
+  BG.fromFFIType hs_bindgen_067b5b207b483c5d_base
+
+{-# NOINLINE heif_encoder_parameter_get_valid_integer_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 174:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_values :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error)
+heif_encoder_parameter_get_valid_integer_values =
+  BG.unsafePerformIO hs_bindgen_067b5b207b483c5d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_string_values@
+foreign import ccall unsafe "hs_bindgen_4402c7b710a2e293" hs_bindgen_4402c7b710a2e293_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_get_valid_string_values@
+hs_bindgen_4402c7b710a2e293 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error))
+hs_bindgen_4402c7b710a2e293 =
+  BG.fromFFIType hs_bindgen_4402c7b710a2e293_base
+
+{-# NOINLINE heif_encoder_parameter_get_valid_string_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_string_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 181:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_string_values :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_parameter -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error)
+heif_encoder_parameter_get_valid_string_values =
+  BG.unsafePerformIO hs_bindgen_4402c7b710a2e293
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_e8b5b676e57560d7" hs_bindgen_e8b5b676e57560d7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_integer@
+hs_bindgen_e8b5b676e57560d7 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_e8b5b676e57560d7 =
+  BG.fromFFIType hs_bindgen_e8b5b676e57560d7_base
+
+{-# NOINLINE heif_encoder_set_parameter_integer #-}
+{-| __C declaration:__ @heif_encoder_set_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 186:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_integer :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_set_parameter_integer =
+  BG.unsafePerformIO hs_bindgen_e8b5b676e57560d7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_c44ab08992218d13" hs_bindgen_c44ab08992218d13_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_integer@
+hs_bindgen_c44ab08992218d13 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_c44ab08992218d13 =
+  BG.fromFFIType hs_bindgen_c44ab08992218d13_base
+
+{-# NOINLINE heif_encoder_get_parameter_integer #-}
+{-| __C declaration:__ @heif_encoder_get_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 191:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_integer :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter_integer =
+  BG.unsafePerformIO hs_bindgen_c44ab08992218d13
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_range@
+foreign import ccall unsafe "hs_bindgen_9598d3b74fd783cb" hs_bindgen_9598d3b74fd783cb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_range@
+hs_bindgen_9598d3b74fd783cb :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_9598d3b74fd783cb =
+  BG.fromFFIType hs_bindgen_9598d3b74fd783cb_base
+
+{-# NOINLINE heif_encoder_parameter_integer_valid_range #-}
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_range :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_parameter_integer_valid_range =
+  BG.unsafePerformIO hs_bindgen_9598d3b74fd783cb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_7db9099ac6d6f5b1" hs_bindgen_7db9099ac6d6f5b1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_boolean@
+hs_bindgen_7db9099ac6d6f5b1 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_7db9099ac6d6f5b1 =
+  BG.fromFFIType hs_bindgen_7db9099ac6d6f5b1_base
+
+{-# NOINLINE heif_encoder_set_parameter_boolean #-}
+{-| __C declaration:__ @heif_encoder_set_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 203:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_boolean :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_set_parameter_boolean =
+  BG.unsafePerformIO hs_bindgen_7db9099ac6d6f5b1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_9f1955202d334a10" hs_bindgen_9f1955202d334a10_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_boolean@
+hs_bindgen_9f1955202d334a10 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error))
+hs_bindgen_9f1955202d334a10 =
+  BG.fromFFIType hs_bindgen_9f1955202d334a10_base
+
+{-# NOINLINE heif_encoder_get_parameter_boolean #-}
+{-| __C declaration:__ @heif_encoder_get_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 208:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_boolean :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter_boolean =
+  BG.unsafePerformIO hs_bindgen_9f1955202d334a10
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_string@
+foreign import ccall unsafe "hs_bindgen_b2607e571c92a618" hs_bindgen_b2607e571c92a618_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter_string@
+hs_bindgen_b2607e571c92a618 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_b2607e571c92a618 =
+  BG.fromFFIType hs_bindgen_b2607e571c92a618_base
+
+{-# NOINLINE heif_encoder_set_parameter_string #-}
+{-| __C declaration:__ @heif_encoder_set_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 213:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_string :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_encoder_set_parameter_string =
+  BG.unsafePerformIO hs_bindgen_b2607e571c92a618
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_string@
+foreign import ccall unsafe "hs_bindgen_a95cafa3230d5da7" hs_bindgen_a95cafa3230d5da7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter_string@
+hs_bindgen_a95cafa3230d5da7 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_a95cafa3230d5da7 =
+  BG.fromFFIType hs_bindgen_a95cafa3230d5da7_base
+
+{-# NOINLINE heif_encoder_get_parameter_string #-}
+{-| __C declaration:__ @heif_encoder_get_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_string :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter_string =
+  BG.unsafePerformIO hs_bindgen_a95cafa3230d5da7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_string_valid_values@
+foreign import ccall unsafe "hs_bindgen_ba4465c08b4cf0a2" hs_bindgen_ba4465c08b4cf0a2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_string_valid_values@
+hs_bindgen_ba4465c08b4cf0a2 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error))
+hs_bindgen_ba4465c08b4cf0a2 =
+  BG.fromFFIType hs_bindgen_ba4465c08b4cf0a2_base
+
+{-# NOINLINE heif_encoder_parameter_string_valid_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_string_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 224:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_string_valid_values :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)) -> IO Heif_error)
+heif_encoder_parameter_string_valid_values =
+  BG.unsafePerformIO hs_bindgen_ba4465c08b4cf0a2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_values@
+foreign import ccall unsafe "hs_bindgen_623e45d55c671d82" hs_bindgen_623e45d55c671d82_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_parameter_integer_valid_values@
+hs_bindgen_623e45d55c671d82 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error))
+hs_bindgen_623e45d55c671d82 =
+  BG.fromFFIType hs_bindgen_623e45d55c671d82_base
+
+{-# NOINLINE heif_encoder_parameter_integer_valid_values #-}
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 229:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_values :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr BG.CInt -> BG.Ptr (PtrConst.PtrConst BG.CInt) -> IO Heif_error)
+heif_encoder_parameter_integer_valid_values =
+  BG.unsafePerformIO hs_bindgen_623e45d55c671d82
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter@
+foreign import ccall unsafe "hs_bindgen_bd86a80de889a4f4" hs_bindgen_bd86a80de889a4f4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_set_parameter@
+hs_bindgen_bd86a80de889a4f4 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_bd86a80de889a4f4 =
+  BG.fromFFIType hs_bindgen_bd86a80de889a4f4_base
+
+{-# NOINLINE heif_encoder_set_parameter #-}
+{-| __C declaration:__ @heif_encoder_set_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 246:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_encoder_set_parameter =
+  BG.unsafePerformIO hs_bindgen_bd86a80de889a4f4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter@
+foreign import ccall unsafe "hs_bindgen_72101d51afa9609b" hs_bindgen_72101d51afa9609b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_get_parameter@
+hs_bindgen_72101d51afa9609b :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error))
+hs_bindgen_72101d51afa9609b =
+  BG.fromFFIType hs_bindgen_72101d51afa9609b_base
+
+{-# NOINLINE heif_encoder_get_parameter #-}
+{-| __C declaration:__ @heif_encoder_get_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 253:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> BG.Ptr BG.CChar -> BG.CInt -> IO Heif_error)
+heif_encoder_get_parameter =
+  BG.unsafePerformIO hs_bindgen_72101d51afa9609b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_has_default@
+foreign import ccall unsafe "hs_bindgen_26a34da2ac618ec0" hs_bindgen_26a34da2ac618ec0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_has_default@
+hs_bindgen_26a34da2ac618ec0 :: IO (BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> IO BG.CInt))
+hs_bindgen_26a34da2ac618ec0 =
+  BG.fromFFIType hs_bindgen_26a34da2ac618ec0_base
+
+{-# NOINLINE heif_encoder_has_default #-}
+{-| __C declaration:__ @heif_encoder_has_default@
+
+    __defined at:__ @libheif\/heif_encoding.h 259:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_has_default :: BG.FunPtr (BG.Ptr Heif_encoder -> PtrConst.PtrConst BG.CChar -> IO BG.CInt)
+heif_encoder_has_default =
+  BG.unsafePerformIO hs_bindgen_26a34da2ac618ec0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_orientation_concat@
+foreign import ccall unsafe "hs_bindgen_c0dd2a0c657131aa" hs_bindgen_c0dd2a0c657131aa_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_orientation_concat@
+hs_bindgen_c0dd2a0c657131aa :: IO (BG.FunPtr (Heif_orientation -> Heif_orientation -> IO Heif_orientation))
+hs_bindgen_c0dd2a0c657131aa =
+  BG.fromFFIType hs_bindgen_c0dd2a0c657131aa_base
+
+{-# NOINLINE heif_orientation_concat #-}
+{-| __C declaration:__ @heif_orientation_concat@
+
+    __defined at:__ @libheif\/heif_encoding.h 278:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_orientation_concat :: BG.FunPtr (Heif_orientation -> Heif_orientation -> IO Heif_orientation)
+heif_orientation_concat =
+  BG.unsafePerformIO hs_bindgen_c0dd2a0c657131aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_28dbaae103570ff4" hs_bindgen_28dbaae103570ff4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_alloc@
+hs_bindgen_28dbaae103570ff4 :: IO (BG.FunPtr (IO (BG.Ptr Heif_encoding_options)))
+hs_bindgen_28dbaae103570ff4 =
+  BG.fromFFIType hs_bindgen_28dbaae103570ff4_base
+
+{-# NOINLINE heif_encoding_options_alloc #-}
+{-| __C declaration:__ @heif_encoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_encoding.h 335:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_alloc :: BG.FunPtr (IO (BG.Ptr Heif_encoding_options))
+heif_encoding_options_alloc =
+  BG.unsafePerformIO hs_bindgen_28dbaae103570ff4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_e7b5455adebcef43" hs_bindgen_e7b5455adebcef43_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_copy@
+hs_bindgen_e7b5455adebcef43 :: IO (BG.FunPtr (BG.Ptr Heif_encoding_options -> PtrConst.PtrConst Heif_encoding_options -> IO ()))
+hs_bindgen_e7b5455adebcef43 =
+  BG.fromFFIType hs_bindgen_e7b5455adebcef43_base
+
+{-# NOINLINE heif_encoding_options_copy #-}
+{-| __C declaration:__ @heif_encoding_options_copy@
+
+    __defined at:__ @libheif\/heif_encoding.h 338:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_copy :: BG.FunPtr (BG.Ptr Heif_encoding_options -> PtrConst.PtrConst Heif_encoding_options -> IO ())
+heif_encoding_options_copy =
+  BG.unsafePerformIO hs_bindgen_e7b5455adebcef43
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_free@
+foreign import ccall unsafe "hs_bindgen_787984e1e413ead9" hs_bindgen_787984e1e413ead9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoding_options_free@
+hs_bindgen_787984e1e413ead9 :: IO (BG.FunPtr (BG.Ptr Heif_encoding_options -> IO ()))
+hs_bindgen_787984e1e413ead9 =
+  BG.fromFFIType hs_bindgen_787984e1e413ead9_base
+
+{-# NOINLINE heif_encoding_options_free #-}
+{-| __C declaration:__ @heif_encoding_options_free@
+
+    __defined at:__ @libheif\/heif_encoding.h 341:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_free :: BG.FunPtr (BG.Ptr Heif_encoding_options -> IO ())
+heif_encoding_options_free =
+  BG.unsafePerformIO hs_bindgen_787984e1e413ead9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_image@
+foreign import ccall unsafe "hs_bindgen_610d77f41f92fba0" hs_bindgen_610d77f41f92fba0_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_image@
+hs_bindgen_610d77f41f92fba0 :: IO (BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_610d77f41f92fba0 =
+  BG.fromFFIType hs_bindgen_610d77f41f92fba0_base
+
+{-# NOINLINE heif_context_encode_image #-}
+{-| __C declaration:__ @heif_context_encode_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 350:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_image :: BG.FunPtr (BG.Ptr Heif_context -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_encode_image =
+  BG.unsafePerformIO hs_bindgen_610d77f41f92fba0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_overlay_image@
+foreign import ccall unsafe "hs_bindgen_b136dae560c28087" hs_bindgen_b136dae560c28087_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_overlay_image@
+hs_bindgen_b136dae560c28087 :: IO (BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word16 -> PtrConst.PtrConst Heif_item_id -> BG.Ptr HsBindgen.Runtime.LibC.Int32 -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16)) -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_b136dae560c28087 =
+  BG.fromFFIType hs_bindgen_b136dae560c28087_base
+
+{-# NOINLINE heif_context_add_overlay_image #-}
+{-| __C declaration:__ @heif_context_add_overlay_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 359:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_overlay_image :: BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word16 -> PtrConst.PtrConst Heif_item_id -> BG.Ptr HsBindgen.Runtime.LibC.Int32 -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16)) -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_add_overlay_image =
+  BG.unsafePerformIO hs_bindgen_b136dae560c28087
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_primary_image@
+foreign import ccall unsafe "hs_bindgen_82f06b9fbe305204" hs_bindgen_82f06b9fbe305204_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_primary_image@
+hs_bindgen_82f06b9fbe305204 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> IO Heif_error))
+hs_bindgen_82f06b9fbe305204 =
+  BG.fromFFIType hs_bindgen_82f06b9fbe305204_base
+
+{-# NOINLINE heif_context_set_primary_image #-}
+{-| __C declaration:__ @heif_context_set_primary_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 369:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_primary_image :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> IO Heif_error)
+heif_context_set_primary_image =
+  BG.unsafePerformIO hs_bindgen_82f06b9fbe305204
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_major_brand@
+foreign import ccall unsafe "hs_bindgen_4f09902dfe4716a2" hs_bindgen_4f09902dfe4716a2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_major_brand@
+hs_bindgen_4f09902dfe4716a2 :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ()))
+hs_bindgen_4f09902dfe4716a2 =
+  BG.fromFFIType hs_bindgen_4f09902dfe4716a2_base
+
+{-# NOINLINE heif_context_set_major_brand #-}
+{-| __C declaration:__ @heif_context_set_major_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 376:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_major_brand :: BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ())
+heif_context_set_major_brand =
+  BG.unsafePerformIO hs_bindgen_4f09902dfe4716a2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_c7a3ced56fa71bcc" hs_bindgen_c7a3ced56fa71bcc_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_compatible_brand@
+hs_bindgen_c7a3ced56fa71bcc :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ()))
+hs_bindgen_c7a3ced56fa71bcc =
+  BG.fromFFIType hs_bindgen_c7a3ced56fa71bcc_base
+
+{-# NOINLINE heif_context_add_compatible_brand #-}
+{-| __C declaration:__ @heif_context_add_compatible_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 381:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_compatible_brand :: BG.FunPtr (BG.Ptr Heif_context -> Heif_brand2 -> IO ())
+heif_context_add_compatible_brand =
+  BG.unsafePerformIO hs_bindgen_c7a3ced56fa71bcc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_unif@
+foreign import ccall unsafe "hs_bindgen_540033bf7a81642b" hs_bindgen_540033bf7a81642b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_unif@
+hs_bindgen_540033bf7a81642b :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_540033bf7a81642b =
+  BG.fromFFIType hs_bindgen_540033bf7a81642b_base
+
+{-# NOINLINE heif_context_set_unif #-}
+{-| __C declaration:__ @heif_context_set_unif@
+
+    __defined at:__ @libheif\/heif_encoding.h 395:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_unif :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_unif =
+  BG.unsafePerformIO hs_bindgen_540033bf7a81642b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_2e1af2c079c4bdcb" hs_bindgen_2e1af2c079c4bdcb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossy_compression@
+hs_bindgen_2e1af2c079c4bdcb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_2e1af2c079c4bdcb =
+  BG.fromFFIType hs_bindgen_2e1af2c079c4bdcb_base
+
+{-# NOINLINE heif_encoder_descriptor_supportes_lossy_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossy_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supportes_lossy_compression =
+  BG.unsafePerformIO hs_bindgen_2e1af2c079c4bdcb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_0872f4049dc6adda" hs_bindgen_0872f4049dc6adda_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_encoder_descriptor_supportes_lossless_compression@
+hs_bindgen_0872f4049dc6adda :: IO (BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt))
+hs_bindgen_0872f4049dc6adda =
+  BG.fromFFIType hs_bindgen_0872f4049dc6adda_base
+
+{-# NOINLINE heif_encoder_descriptor_supportes_lossless_compression #-}
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 405:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossless_compression :: BG.FunPtr (PtrConst.PtrConst Heif_encoder_descriptor -> IO BG.CInt)
+heif_encoder_descriptor_supportes_lossless_compression =
+  BG.unsafePerformIO hs_bindgen_0872f4049dc6adda
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_2fc974173395e821" hs_bindgen_2fc974173395e821_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_encoder_descriptors@
+hs_bindgen_2fc974173395e821 :: IO (BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt))
+hs_bindgen_2fc974173395e821 =
+  BG.fromFFIType hs_bindgen_2fc974173395e821_base
+
+{-# NOINLINE heif_context_get_encoder_descriptors #-}
+{-| __C declaration:__ @heif_context_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 415:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_descriptors :: BG.FunPtr (BG.Ptr Heif_context -> Heif_compression_format -> PtrConst.PtrConst BG.CChar -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor) -> BG.CInt -> IO BG.CInt)
+heif_context_get_encoder_descriptors =
+  BG.unsafePerformIO hs_bindgen_2fc974173395e821
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_5e62b65c99d23407" hs_bindgen_5e62b65c99d23407_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_set_max_decoding_threads@
+hs_bindgen_5e62b65c99d23407 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ()))
+hs_bindgen_5e62b65c99d23407 =
+  BG.fromFFIType hs_bindgen_5e62b65c99d23407_base
+
+{-# NOINLINE heif_context_set_max_decoding_threads #-}
+{-| __C declaration:__ @heif_context_set_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 40:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_max_decoding_threads :: BG.FunPtr (BG.Ptr Heif_context -> BG.CInt -> IO ())
+heif_context_set_max_decoding_threads =
+  BG.unsafePerformIO hs_bindgen_5e62b65c99d23407
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_3b4e8316def8a237" hs_bindgen_3b4e8316def8a237_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_get_max_decoding_threads@
+hs_bindgen_3b4e8316def8a237 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_context -> IO BG.CInt))
+hs_bindgen_3b4e8316def8a237 =
+  BG.fromFFIType hs_bindgen_3b4e8316def8a237_base
+
+{-# NOINLINE heif_context_get_max_decoding_threads #-}
+{-| __C declaration:__ @heif_context_get_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 47:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_max_decoding_threads :: BG.FunPtr (PtrConst.PtrConst Heif_context -> IO BG.CInt)
+heif_context_get_max_decoding_threads =
+  BG.unsafePerformIO hs_bindgen_3b4e8316def8a237
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_decoder_for_format@
+foreign import ccall unsafe "hs_bindgen_3daa6cca356665b6" hs_bindgen_3daa6cca356665b6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_have_decoder_for_format@
+hs_bindgen_3daa6cca356665b6 :: IO (BG.FunPtr (Heif_compression_format -> IO BG.CInt))
+hs_bindgen_3daa6cca356665b6 =
+  BG.fromFFIType hs_bindgen_3daa6cca356665b6_base
+
+{-# NOINLINE heif_have_decoder_for_format #-}
+{-| __C declaration:__ @heif_have_decoder_for_format@
+
+    __defined at:__ @libheif\/heif_decoding.h 53:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_decoder_for_format :: BG.FunPtr (Heif_compression_format -> IO BG.CInt)
+heif_have_decoder_for_format =
+  BG.unsafePerformIO hs_bindgen_3daa6cca356665b6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_9a50b249bd540166" hs_bindgen_9a50b249bd540166_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_alloc@
+hs_bindgen_9a50b249bd540166 :: IO (BG.FunPtr (IO (BG.Ptr Heif_decoding_options)))
+hs_bindgen_9a50b249bd540166 =
+  BG.fromFFIType hs_bindgen_9a50b249bd540166_base
+
+{-# NOINLINE heif_decoding_options_alloc #-}
+{-| __C declaration:__ @heif_decoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_decoding.h 165:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_alloc :: BG.FunPtr (IO (BG.Ptr Heif_decoding_options))
+heif_decoding_options_alloc =
+  BG.unsafePerformIO hs_bindgen_9a50b249bd540166
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_32da465efe73fcdb" hs_bindgen_32da465efe73fcdb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_copy@
+hs_bindgen_32da465efe73fcdb :: IO (BG.FunPtr (BG.Ptr Heif_decoding_options -> PtrConst.PtrConst Heif_decoding_options -> IO ()))
+hs_bindgen_32da465efe73fcdb =
+  BG.fromFFIType hs_bindgen_32da465efe73fcdb_base
+
+{-# NOINLINE heif_decoding_options_copy #-}
+{-| __C declaration:__ @heif_decoding_options_copy@
+
+    __defined at:__ @libheif\/heif_decoding.h 168:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_copy :: BG.FunPtr (BG.Ptr Heif_decoding_options -> PtrConst.PtrConst Heif_decoding_options -> IO ())
+heif_decoding_options_copy =
+  BG.unsafePerformIO hs_bindgen_32da465efe73fcdb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_free@
+foreign import ccall unsafe "hs_bindgen_52712d76ab537988" hs_bindgen_52712d76ab537988_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoding_options_free@
+hs_bindgen_52712d76ab537988 :: IO (BG.FunPtr (BG.Ptr Heif_decoding_options -> IO ()))
+hs_bindgen_52712d76ab537988 =
+  BG.fromFFIType hs_bindgen_52712d76ab537988_base
+
+{-# NOINLINE heif_decoding_options_free #-}
+{-| __C declaration:__ @heif_decoding_options_free@
+
+    __defined at:__ @libheif\/heif_decoding.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_free :: BG.FunPtr (BG.Ptr Heif_decoding_options -> IO ())
+heif_decoding_options_free =
+  BG.unsafePerformIO hs_bindgen_52712d76ab537988
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_decoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_0f017f38829ac8dd" hs_bindgen_0f017f38829ac8dd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_get_decoder_descriptors@
+hs_bindgen_0f017f38829ac8dd :: IO (BG.FunPtr (Heif_compression_format -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor) -> BG.CInt -> IO BG.CInt))
+hs_bindgen_0f017f38829ac8dd =
+  BG.fromFFIType hs_bindgen_0f017f38829ac8dd_base
+
+{-# NOINLINE heif_get_decoder_descriptors #-}
+{-| __C declaration:__ @heif_get_decoder_descriptors@
+
+    __defined at:__ @libheif\/heif_decoding.h 183:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_decoder_descriptors :: BG.FunPtr (Heif_compression_format -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor) -> BG.CInt -> IO BG.CInt)
+heif_get_decoder_descriptors =
+  BG.unsafePerformIO hs_bindgen_0f017f38829ac8dd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_3db1040f1533c36e" hs_bindgen_3db1040f1533c36e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_name@
+hs_bindgen_3db1040f1533c36e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_3db1040f1533c36e =
+  BG.fromFFIType hs_bindgen_3db1040f1533c36e_base
+
+{-# NOINLINE heif_decoder_descriptor_get_name #-}
+{-| __C declaration:__ @heif_decoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 189:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_name :: BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_decoder_descriptor_get_name =
+  BG.unsafePerformIO hs_bindgen_3db1040f1533c36e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_7b37485a305012c6" hs_bindgen_7b37485a305012c6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decoder_descriptor_get_id_name@
+hs_bindgen_7b37485a305012c6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_7b37485a305012c6 =
+  BG.fromFFIType hs_bindgen_7b37485a305012c6_base
+
+{-# NOINLINE heif_decoder_descriptor_get_id_name #-}
+{-| __C declaration:__ @heif_decoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 195:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_id_name :: BG.FunPtr (PtrConst.PtrConst Heif_decoder_descriptor -> IO (PtrConst.PtrConst BG.CChar))
+heif_decoder_descriptor_get_id_name =
+  BG.unsafePerformIO hs_bindgen_7b37485a305012c6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decode_image@
+foreign import ccall unsafe "hs_bindgen_979d124ef42ec5cf" hs_bindgen_979d124ef42ec5cf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_decode_image@
+hs_bindgen_979d124ef42ec5cf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> IO Heif_error))
+hs_bindgen_979d124ef42ec5cf =
+  BG.fromFFIType hs_bindgen_979d124ef42ec5cf_base
+
+{-# NOINLINE heif_decode_image #-}
+{-| __C declaration:__ @heif_decode_image@
+
+    __defined at:__ @libheif\/heif_decoding.h 209:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decode_image :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> IO Heif_error)
+heif_decode_image =
+  BG.unsafePerformIO hs_bindgen_979d124ef42ec5cf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release@
+foreign import ccall unsafe "hs_bindgen_f5cb46c43b851a0a" hs_bindgen_f5cb46c43b851a0a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_release@
+hs_bindgen_f5cb46c43b851a0a :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO ()))
+hs_bindgen_f5cb46c43b851a0a =
+  BG.fromFFIType hs_bindgen_f5cb46c43b851a0a_base
+
+{-# NOINLINE heif_image_handle_release #-}
+{-| __C declaration:__ @heif_image_handle_release@
+
+    __defined at:__ @libheif\/heif_image_handle.h 47:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO ())
+heif_image_handle_release =
+  BG.unsafePerformIO hs_bindgen_f5cb46c43b851a0a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_primary_image@
+foreign import ccall unsafe "hs_bindgen_9d6025e4141c8268" hs_bindgen_9d6025e4141c8268_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_primary_image@
+hs_bindgen_9d6025e4141c8268 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_9d6025e4141c8268 =
+  BG.fromFFIType hs_bindgen_9d6025e4141c8268_base
+
+{-# NOINLINE heif_image_handle_is_primary_image #-}
+{-| __C declaration:__ @heif_image_handle_is_primary_image@
+
+    __defined at:__ @libheif\/heif_image_handle.h 51:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_primary_image :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_is_primary_image =
+  BG.unsafePerformIO hs_bindgen_9d6025e4141c8268
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_item_id@
+foreign import ccall unsafe "hs_bindgen_4f10cdca13968c49" hs_bindgen_4f10cdca13968c49_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_item_id@
+hs_bindgen_4f10cdca13968c49 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_item_id))
+hs_bindgen_4f10cdca13968c49 =
+  BG.fromFFIType hs_bindgen_4f10cdca13968c49_base
+
+{-# NOINLINE heif_image_handle_get_item_id #-}
+{-| __C declaration:__ @heif_image_handle_get_item_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_item_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_item_id)
+heif_image_handle_get_item_id =
+  BG.unsafePerformIO hs_bindgen_4f10cdca13968c49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_width@
+foreign import ccall unsafe "hs_bindgen_fe94688c878539a4" hs_bindgen_fe94688c878539a4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_width@
+hs_bindgen_fe94688c878539a4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_fe94688c878539a4 =
+  BG.fromFFIType hs_bindgen_fe94688c878539a4_base
+
+{-# NOINLINE heif_image_handle_get_width #-}
+{-| __C declaration:__ @heif_image_handle_get_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 61:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_width :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_width =
+  BG.unsafePerformIO hs_bindgen_fe94688c878539a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_height@
+foreign import ccall unsafe "hs_bindgen_3b679516a521f7e3" hs_bindgen_3b679516a521f7e3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_height@
+hs_bindgen_3b679516a521f7e3 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_3b679516a521f7e3 =
+  BG.fromFFIType hs_bindgen_3b679516a521f7e3_base
+
+{-# NOINLINE heif_image_handle_get_height #-}
+{-| __C declaration:__ @heif_image_handle_get_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 68:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_height :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_height =
+  BG.unsafePerformIO hs_bindgen_3b679516a521f7e3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_alpha_channel@
+foreign import ccall unsafe "hs_bindgen_4a7731dc45dcb737" hs_bindgen_4a7731dc45dcb737_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_alpha_channel@
+hs_bindgen_4a7731dc45dcb737 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_4a7731dc45dcb737 =
+  BG.fromFFIType hs_bindgen_4a7731dc45dcb737_base
+
+{-# NOINLINE heif_image_handle_has_alpha_channel #-}
+{-| __C declaration:__ @heif_image_handle_has_alpha_channel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 71:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_alpha_channel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_alpha_channel =
+  BG.unsafePerformIO hs_bindgen_4a7731dc45dcb737
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_59754eef2ee882b9" hs_bindgen_59754eef2ee882b9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_is_premultiplied_alpha@
+hs_bindgen_59754eef2ee882b9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_59754eef2ee882b9 =
+  BG.fromFFIType hs_bindgen_59754eef2ee882b9_base
+
+{-# NOINLINE heif_image_handle_is_premultiplied_alpha #-}
+{-| __C declaration:__ @heif_image_handle_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image_handle.h 74:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_premultiplied_alpha :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_is_premultiplied_alpha =
+  BG.unsafePerformIO hs_bindgen_59754eef2ee882b9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_luma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_f9d7480524d63f18" hs_bindgen_f9d7480524d63f18_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_luma_bits_per_pixel@
+hs_bindgen_f9d7480524d63f18 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_f9d7480524d63f18 =
+  BG.fromFFIType hs_bindgen_f9d7480524d63f18_base
+
+{-# NOINLINE heif_image_handle_get_luma_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_handle_get_luma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 79:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_luma_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_luma_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_f9d7480524d63f18
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_chroma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_bb5d1684ae3d8627" hs_bindgen_bb5d1684ae3d8627_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_chroma_bits_per_pixel@
+hs_bindgen_bb5d1684ae3d8627 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_bb5d1684ae3d8627 =
+  BG.fromFFIType hs_bindgen_bb5d1684ae3d8627_base
+
+{-# NOINLINE heif_image_handle_get_chroma_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_handle_get_chroma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 84:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_chroma_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_chroma_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_bb5d1684ae3d8627
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_preferred_decoding_colorspace@
+foreign import ccall unsafe "hs_bindgen_4494944c3b2862bd" hs_bindgen_4494944c3b2862bd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_preferred_decoding_colorspace@
+hs_bindgen_4494944c3b2862bd :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_colorspace -> BG.Ptr Heif_chroma -> IO Heif_error))
+hs_bindgen_4494944c3b2862bd =
+  BG.fromFFIType hs_bindgen_4494944c3b2862bd_base
+
+{-# NOINLINE heif_image_handle_get_preferred_decoding_colorspace #-}
+{-| __C declaration:__ @heif_image_handle_get_preferred_decoding_colorspace@
+
+    __defined at:__ @libheif\/heif_image_handle.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_preferred_decoding_colorspace :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr Heif_colorspace -> BG.Ptr Heif_chroma -> IO Heif_error)
+heif_image_handle_get_preferred_decoding_colorspace =
+  BG.unsafePerformIO hs_bindgen_4494944c3b2862bd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_width@
+foreign import ccall unsafe "hs_bindgen_d49b3c605c71337e" hs_bindgen_d49b3c605c71337e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_width@
+hs_bindgen_d49b3c605c71337e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_d49b3c605c71337e =
+  BG.fromFFIType hs_bindgen_d49b3c605c71337e_base
+
+{-# NOINLINE heif_image_handle_get_ispe_width #-}
+{-| __C declaration:__ @heif_image_handle_get_ispe_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 110:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_width :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_ispe_width =
+  BG.unsafePerformIO hs_bindgen_d49b3c605c71337e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_height@
+foreign import ccall unsafe "hs_bindgen_2162a39f4c12630b" hs_bindgen_2162a39f4c12630b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_ispe_height@
+hs_bindgen_2162a39f4c12630b :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_2162a39f4c12630b =
+  BG.fromFFIType hs_bindgen_2162a39f4c12630b_base
+
+{-# NOINLINE heif_image_handle_get_ispe_height #-}
+{-| __C declaration:__ @heif_image_handle_get_ispe_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_height :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_get_ispe_height =
+  BG.unsafePerformIO hs_bindgen_2162a39f4c12630b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_723ac84409ddbfbf" hs_bindgen_723ac84409ddbfbf_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_pixel_aspect_ratio@
+hs_bindgen_723ac84409ddbfbf :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt))
+hs_bindgen_723ac84409ddbfbf =
+  BG.fromFFIType hs_bindgen_723ac84409ddbfbf_base
+
+{-# NOINLINE heif_image_handle_get_pixel_aspect_ratio #-}
+{-| __C declaration:__ @heif_image_handle_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image_handle.h 117:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_pixel_aspect_ratio :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt)
+heif_image_handle_get_pixel_aspect_ratio =
+  BG.unsafePerformIO hs_bindgen_723ac84409ddbfbf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_context@
+foreign import ccall unsafe "hs_bindgen_a4854bf4bce1329e" hs_bindgen_a4854bf4bce1329e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_context@
+hs_bindgen_a4854bf4bce1329e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (BG.Ptr Heif_context)))
+hs_bindgen_a4854bf4bce1329e =
+  BG.fromFFIType hs_bindgen_a4854bf4bce1329e_base
+
+{-# NOINLINE heif_image_handle_get_context #-}
+{-| __C declaration:__ @heif_image_handle_get_context@
+
+    __defined at:__ @libheif\/heif_image_handle.h 129:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_context :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (BG.Ptr Heif_context))
+heif_image_handle_get_context =
+  BG.unsafePerformIO hs_bindgen_a4854bf4bce1329e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_ec464a481e6bf7eb" hs_bindgen_ec464a481e6bf7eb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_content_id@
+hs_bindgen_ec464a481e6bf7eb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_ec464a481e6bf7eb =
+  BG.fromFFIType hs_bindgen_ec464a481e6bf7eb_base
+
+{-# NOINLINE heif_image_handle_get_gimi_content_id #-}
+{-| __C declaration:__ @heif_image_handle_get_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 132:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_content_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_gimi_content_id =
+  BG.unsafePerformIO hs_bindgen_ec464a481e6bf7eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_45b87b154ffab31e" hs_bindgen_45b87b154ffab31e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_content_id@
+hs_bindgen_45b87b154ffab31e :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO ()))
+hs_bindgen_45b87b154ffab31e =
+  BG.fromFFIType hs_bindgen_45b87b154ffab31e_base
+
+{-# NOINLINE heif_image_handle_set_gimi_content_id #-}
+{-| __C declaration:__ @heif_image_handle_set_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 135:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_content_id :: BG.FunPtr (BG.Ptr Heif_image_handle -> PtrConst.PtrConst BG.CChar -> IO ())
+heif_image_handle_set_gimi_content_id =
+  BG.unsafePerformIO hs_bindgen_45b87b154ffab31e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_cmpd_components@
+foreign import ccall unsafe "hs_bindgen_3f1f496bd459f7d1" hs_bindgen_3f1f496bd459f7d1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_cmpd_components@
+hs_bindgen_3f1f496bd459f7d1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_3f1f496bd459f7d1 =
+  BG.fromFFIType hs_bindgen_3f1f496bd459f7d1_base
+
+{-# NOINLINE heif_image_handle_get_number_of_cmpd_components #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_cmpd_components@
+
+    __defined at:__ @libheif\/heif_image_handle.h 142:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_cmpd_components :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_handle_get_number_of_cmpd_components =
+  BG.unsafePerformIO hs_bindgen_3f1f496bd459f7d1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type@
+foreign import ccall unsafe "hs_bindgen_30689ff6fff118a6" hs_bindgen_30689ff6fff118a6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type@
+hs_bindgen_30689ff6fff118a6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16))
+hs_bindgen_30689ff6fff118a6 =
+  BG.fromFFIType hs_bindgen_30689ff6fff118a6_base
+
+{-# NOINLINE heif_image_handle_get_cmpd_component_type #-}
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_image_handle.h 147:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16)
+heif_image_handle_get_cmpd_component_type =
+  BG.unsafePerformIO hs_bindgen_30689ff6fff118a6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type_uri@
+foreign import ccall unsafe "hs_bindgen_e8528f21f6d1c6e1" hs_bindgen_e8528f21f6d1c6e1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_cmpd_component_type_uri@
+hs_bindgen_e8528f21f6d1c6e1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_e8528f21f6d1c6e1 =
+  BG.fromFFIType hs_bindgen_e8528f21f6d1c6e1_base
+
+{-# NOINLINE heif_image_handle_get_cmpd_component_type_uri #-}
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type_uri@
+
+    __defined at:__ @libheif\/heif_image_handle.h 153:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type_uri :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_cmpd_component_type_uri =
+  BG.unsafePerformIO hs_bindgen_e8528f21f6d1c6e1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_gimi_component_content_ids@
+foreign import ccall unsafe "hs_bindgen_cd11e257d97813a3" hs_bindgen_cd11e257d97813a3_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_has_gimi_component_content_ids@
+hs_bindgen_cd11e257d97813a3 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt))
+hs_bindgen_cd11e257d97813a3 =
+  BG.fromFFIType hs_bindgen_cd11e257d97813a3_base
+
+{-# NOINLINE heif_image_handle_has_gimi_component_content_ids #-}
+{-| __C declaration:__ @heif_image_handle_has_gimi_component_content_ids@
+
+    __defined at:__ @libheif\/heif_image_handle.h 160:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_gimi_component_content_ids :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO BG.CInt)
+heif_image_handle_has_gimi_component_content_ids =
+  BG.unsafePerformIO hs_bindgen_cd11e257d97813a3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_82b03ca2c8baca6c" hs_bindgen_82b03ca2c8baca6c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_gimi_component_content_id@
+hs_bindgen_82b03ca2c8baca6c :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar)))
+hs_bindgen_82b03ca2c8baca6c =
+  BG.fromFFIType hs_bindgen_82b03ca2c8baca6c_base
+
+{-# NOINLINE heif_image_handle_get_gimi_component_content_id #-}
+{-| __C declaration:__ @heif_image_handle_get_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 166:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_component_content_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO (PtrConst.PtrConst BG.CChar))
+heif_image_handle_get_gimi_component_content_id =
+  BG.unsafePerformIO hs_bindgen_82b03ca2c8baca6c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_8e6048a2e91cf20b" hs_bindgen_8e6048a2e91cf20b_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_gimi_component_content_id@
+hs_bindgen_8e6048a2e91cf20b :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO ()))
+hs_bindgen_8e6048a2e91cf20b =
+  BG.fromFFIType hs_bindgen_8e6048a2e91cf20b_base
+
+{-# NOINLINE heif_image_handle_set_gimi_component_content_id #-}
+{-| __C declaration:__ @heif_image_handle_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_component_content_id :: BG.FunPtr (BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO ())
+heif_image_handle_set_gimi_component_content_id =
+  BG.unsafePerformIO hs_bindgen_8e6048a2e91cf20b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_image_tiling@
+foreign import ccall unsafe "hs_bindgen_c72c6e6de065492e" hs_bindgen_c72c6e6de065492e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_image_tiling@
+hs_bindgen_c72c6e6de065492e :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_image_tiling -> IO Heif_error))
+hs_bindgen_c72c6e6de065492e =
+  BG.fromFFIType hs_bindgen_c72c6e6de065492e_base
+
+{-# NOINLINE heif_image_handle_get_image_tiling #-}
+{-| __C declaration:__ @heif_image_handle_get_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 67:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_image_tiling :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> BG.Ptr Heif_image_tiling -> IO Heif_error)
+heif_image_handle_get_image_tiling =
+  BG.unsafePerformIO hs_bindgen_c72c6e6de065492e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_grid_image_tile_id@
+foreign import ccall unsafe "hs_bindgen_dbdaf29e829a9876" hs_bindgen_dbdaf29e829a9876_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_grid_image_tile_id@
+hs_bindgen_dbdaf29e829a9876 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr Heif_item_id -> IO Heif_error))
+hs_bindgen_dbdaf29e829a9876 =
+  BG.fromFFIType hs_bindgen_dbdaf29e829a9876_base
+
+{-# NOINLINE heif_image_handle_get_grid_image_tile_id #-}
+{-| __C declaration:__ @heif_image_handle_get_grid_image_tile_id@
+
+    __defined at:__ @libheif\/heif_tiling.h 74:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_grid_image_tile_id :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.CInt -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr Heif_item_id -> IO Heif_error)
+heif_image_handle_get_grid_image_tile_id =
+  BG.unsafePerformIO hs_bindgen_dbdaf29e829a9876
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_decode_image_tile@
+foreign import ccall unsafe "hs_bindgen_699735c377474463" hs_bindgen_699735c377474463_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_decode_image_tile@
+hs_bindgen_699735c377474463 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error))
+hs_bindgen_699735c377474463 =
+  BG.fromFFIType hs_bindgen_699735c377474463_base
+
+{-# NOINLINE heif_image_handle_decode_image_tile #-}
+{-| __C declaration:__ @heif_image_handle_decode_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 86:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_decode_image_tile :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr (BG.Ptr Heif_image) -> Heif_colorspace -> Heif_chroma -> PtrConst.PtrConst Heif_decoding_options -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_error)
+heif_image_handle_decode_image_tile =
+  BG.unsafePerformIO hs_bindgen_699735c377474463
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_grid@
+foreign import ccall unsafe "hs_bindgen_7caea6543ead81e2" hs_bindgen_7caea6543ead81e2_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_encode_grid@
+hs_bindgen_7caea6543ead81e2 :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image) -> HsBindgen.Runtime.LibC.Word16 -> HsBindgen.Runtime.LibC.Word16 -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_7caea6543ead81e2 =
+  BG.fromFFIType hs_bindgen_7caea6543ead81e2_base
+
+{-# NOINLINE heif_context_encode_grid #-}
+{-| __C declaration:__ @heif_context_encode_grid@
+
+    __defined at:__ @libheif\/heif_tiling.h 109:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_grid :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr (BG.Ptr Heif_image) -> HsBindgen.Runtime.LibC.Word16 -> HsBindgen.Runtime.LibC.Word16 -> BG.Ptr Heif_encoder -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_encode_grid =
+  BG.unsafePerformIO hs_bindgen_7caea6543ead81e2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_grid_image@
+foreign import ccall unsafe "hs_bindgen_2cce0ce4f2f029a8" hs_bindgen_2cce0ce4f2f029a8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_grid_image@
+hs_bindgen_2cce0ce4f2f029a8 :: IO (BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error))
+hs_bindgen_2cce0ce4f2f029a8 =
+  BG.fromFFIType hs_bindgen_2cce0ce4f2f029a8_base
+
+{-# NOINLINE heif_context_add_grid_image #-}
+{-| __C declaration:__ @heif_context_add_grid_image@
+
+    __defined at:__ @libheif\/heif_tiling.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_grid_image :: BG.FunPtr (BG.Ptr Heif_context -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_encoding_options -> BG.Ptr (BG.Ptr Heif_image_handle) -> IO Heif_error)
+heif_context_add_grid_image =
+  BG.unsafePerformIO hs_bindgen_2cce0ce4f2f029a8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_image_tile@
+foreign import ccall unsafe "hs_bindgen_65b0546b14ab11ca" hs_bindgen_65b0546b14ab11ca_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_context_add_image_tile@
+hs_bindgen_65b0546b14ab11ca :: IO (BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> IO Heif_error))
+hs_bindgen_65b0546b14ab11ca =
+  BG.fromFFIType hs_bindgen_65b0546b14ab11ca_base
+
+{-# NOINLINE heif_context_add_image_tile #-}
+{-| __C declaration:__ @heif_context_add_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 127:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_image_tile :: BG.FunPtr (BG.Ptr Heif_context -> BG.Ptr Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst Heif_image -> BG.Ptr Heif_encoder -> IO Heif_error)
+heif_context_add_image_tile =
+  BG.unsafePerformIO hs_bindgen_65b0546b14ab11ca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_number_of_used_components@
+foreign import ccall unsafe "hs_bindgen_cccb6b24e80c7598" hs_bindgen_cccb6b24e80c7598_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_number_of_used_components@
+hs_bindgen_cccb6b24e80c7598 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_cccb6b24e80c7598 =
+  BG.fromFFIType hs_bindgen_cccb6b24e80c7598_base
+
+{-# NOINLINE heif_image_get_number_of_used_components #-}
+{-| __C declaration:__ @heif_image_get_number_of_used_components@
+
+    __defined at:__ @libheif\/heif_components.h 96:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_number_of_used_components :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_number_of_used_components =
+  BG.unsafePerformIO hs_bindgen_cccb6b24e80c7598
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_b2a27aa5ab429ee9" hs_bindgen_b2a27aa5ab429ee9_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_used_component_ids@
+hs_bindgen_b2a27aa5ab429ee9 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_b2a27aa5ab429ee9 =
+  BG.fromFFIType hs_bindgen_b2a27aa5ab429ee9_base
+
+{-# NOINLINE heif_image_get_used_component_ids #-}
+{-| __C declaration:__ @heif_image_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 101:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_used_component_ids :: BG.FunPtr (PtrConst.PtrConst Heif_image -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_get_used_component_ids =
+  BG.unsafePerformIO hs_bindgen_b2a27aa5ab429ee9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_channel@
+foreign import ccall unsafe "hs_bindgen_51621589bc6d7870" hs_bindgen_51621589bc6d7870_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_channel@
+hs_bindgen_51621589bc6d7870 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_channel))
+hs_bindgen_51621589bc6d7870 =
+  BG.fromFFIType hs_bindgen_51621589bc6d7870_base
+
+{-# NOINLINE heif_image_get_component_channel #-}
+{-| __C declaration:__ @heif_image_get_component_channel@
+
+    __defined at:__ @libheif\/heif_components.h 104:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_channel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_channel)
+heif_image_get_component_channel =
+  BG.unsafePerformIO hs_bindgen_51621589bc6d7870
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_width@
+foreign import ccall unsafe "hs_bindgen_844ddc17a3c931b4" hs_bindgen_844ddc17a3c931b4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_width@
+hs_bindgen_844ddc17a3c931b4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_844ddc17a3c931b4 =
+  BG.fromFFIType hs_bindgen_844ddc17a3c931b4_base
+
+{-# NOINLINE heif_image_get_component_width #-}
+{-| __C declaration:__ @heif_image_get_component_width@
+
+    __defined at:__ @libheif\/heif_components.h 107:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_width :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_width =
+  BG.unsafePerformIO hs_bindgen_844ddc17a3c931b4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_height@
+foreign import ccall unsafe "hs_bindgen_1fa307e24407a0f7" hs_bindgen_1fa307e24407a0f7_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_height@
+hs_bindgen_1fa307e24407a0f7 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_1fa307e24407a0f7 =
+  BG.fromFFIType hs_bindgen_1fa307e24407a0f7_base
+
+{-# NOINLINE heif_image_get_component_height #-}
+{-| __C declaration:__ @heif_image_get_component_height@
+
+    __defined at:__ @libheif\/heif_components.h 110:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_height :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_height =
+  BG.unsafePerformIO hs_bindgen_1fa307e24407a0f7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_fa65f60ea3112425" hs_bindgen_fa65f60ea3112425_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_bits_per_pixel@
+hs_bindgen_fa65f60ea3112425 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt))
+hs_bindgen_fa65f60ea3112425 =
+  BG.fromFFIType hs_bindgen_fa65f60ea3112425_base
+
+{-# NOINLINE heif_image_get_component_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt)
+heif_image_get_component_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_fa65f60ea3112425
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_type@
+foreign import ccall unsafe "hs_bindgen_500397f4997a0fa4" hs_bindgen_500397f4997a0fa4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_type@
+hs_bindgen_500397f4997a0fa4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16))
+hs_bindgen_500397f4997a0fa4 =
+  BG.fromFFIType hs_bindgen_500397f4997a0fa4_base
+
+{-# NOINLINE heif_image_get_component_type #-}
+{-| __C declaration:__ @heif_image_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 116:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_type :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_type =
+  BG.unsafePerformIO hs_bindgen_500397f4997a0fa4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_b3718485664aa5c1" hs_bindgen_b3718485664aa5c1_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_datatype@
+hs_bindgen_b3718485664aa5c1 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype))
+hs_bindgen_b3718485664aa5c1 =
+  BG.fromFFIType hs_bindgen_b3718485664aa5c1_base
+
+{-# NOINLINE heif_image_get_component_datatype #-}
+{-| __C declaration:__ @heif_image_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 121:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_datatype :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype)
+heif_image_get_component_datatype =
+  BG.unsafePerformIO hs_bindgen_b3718485664aa5c1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_components@
+foreign import ccall unsafe "hs_bindgen_313b35060d1e5135" hs_bindgen_313b35060d1e5135_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_number_of_components@
+hs_bindgen_313b35060d1e5135 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32))
+hs_bindgen_313b35060d1e5135 =
+  BG.fromFFIType hs_bindgen_313b35060d1e5135_base
+
+{-# NOINLINE heif_image_handle_get_number_of_components #-}
+{-| __C declaration:__ @heif_image_handle_get_number_of_components@
+
+    __defined at:__ @libheif\/heif_components.h 136:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_components :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO HsBindgen.Runtime.LibC.Word32)
+heif_image_handle_get_number_of_components =
+  BG.unsafePerformIO hs_bindgen_313b35060d1e5135
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_3d6d506be66d3a5d" hs_bindgen_3d6d506be66d3a5d_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_used_component_ids@
+hs_bindgen_3d6d506be66d3a5d :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ()))
+hs_bindgen_3d6d506be66d3a5d =
+  BG.fromFFIType hs_bindgen_3d6d506be66d3a5d_base
+
+{-# NOINLINE heif_image_handle_get_used_component_ids #-}
+{-| __C declaration:__ @heif_image_handle_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 142:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_used_component_ids :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO ())
+heif_image_handle_get_used_component_ids =
+  BG.unsafePerformIO hs_bindgen_3d6d506be66d3a5d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_type@
+foreign import ccall unsafe "hs_bindgen_2a9b81acde526f2f" hs_bindgen_2a9b81acde526f2f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_type@
+hs_bindgen_2a9b81acde526f2f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16))
+hs_bindgen_2a9b81acde526f2f =
+  BG.fromFFIType hs_bindgen_2a9b81acde526f2f_base
+
+{-# NOINLINE heif_image_handle_get_component_type #-}
+{-| __C declaration:__ @heif_image_handle_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 145:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_type :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO HsBindgen.Runtime.LibC.Word16)
+heif_image_handle_get_component_type =
+  BG.unsafePerformIO hs_bindgen_2a9b81acde526f2f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_7114af07e418dc15" hs_bindgen_7114af07e418dc15_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_bits_per_pixel@
+hs_bindgen_7114af07e418dc15 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt))
+hs_bindgen_7114af07e418dc15 =
+  BG.fromFFIType hs_bindgen_7114af07e418dc15_base
+
+{-# NOINLINE heif_image_handle_get_component_bits_per_pixel #-}
+{-| __C declaration:__ @heif_image_handle_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_bits_per_pixel :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO BG.CInt)
+heif_image_handle_get_component_bits_per_pixel =
+  BG.unsafePerformIO hs_bindgen_7114af07e418dc15
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_37ac5fdd4a5313c6" hs_bindgen_37ac5fdd4a5313c6_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_component_datatype@
+hs_bindgen_37ac5fdd4a5313c6 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype))
+hs_bindgen_37ac5fdd4a5313c6 =
+  BG.fromFFIType hs_bindgen_37ac5fdd4a5313c6_base
+
+{-# NOINLINE heif_image_handle_get_component_datatype #-}
+{-| __C declaration:__ @heif_image_handle_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 151:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_datatype :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> HsBindgen.Runtime.LibC.Word32 -> IO Heif_component_datatype)
+heif_image_handle_get_component_datatype =
+  BG.unsafePerformIO hs_bindgen_37ac5fdd4a5313c6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_component@
+foreign import ccall unsafe "hs_bindgen_1fdd576f0a532dd8" hs_bindgen_1fdd576f0a532dd8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_add_component@
+hs_bindgen_1fdd576f0a532dd8 :: IO (BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> HsBindgen.Runtime.LibC.Word16 -> Heif_component_datatype -> BG.CInt -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO Heif_error))
+hs_bindgen_1fdd576f0a532dd8 =
+  BG.fromFFIType hs_bindgen_1fdd576f0a532dd8_base
+
+{-# NOINLINE heif_image_add_component #-}
+{-| __C declaration:__ @heif_image_add_component@
+
+    __defined at:__ @libheif\/heif_components.h 157:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_component :: BG.FunPtr (BG.Ptr Heif_image -> BG.CInt -> BG.CInt -> HsBindgen.Runtime.LibC.Word16 -> Heif_component_datatype -> BG.CInt -> BG.Ptr HsBindgen.Runtime.LibC.Word32 -> IO Heif_error)
+heif_image_add_component =
+  BG.unsafePerformIO hs_bindgen_1fdd576f0a532dd8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_readonly@
+foreign import ccall unsafe "hs_bindgen_b887cc6f13914d9f" hs_bindgen_b887cc6f13914d9f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_readonly@
+hs_bindgen_b887cc6f13914d9f :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_b887cc6f13914d9f =
+  BG.fromFFIType hs_bindgen_b887cc6f13914d9f_base
+
+{-# NOINLINE heif_image_get_component_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 168:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8))
+heif_image_get_component_readonly =
+  BG.unsafePerformIO hs_bindgen_b887cc6f13914d9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component@
+foreign import ccall unsafe "hs_bindgen_d0fb2e8c6b555a5f" hs_bindgen_d0fb2e8c6b555a5f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component@
+hs_bindgen_d0fb2e8c6b555a5f :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)))
+hs_bindgen_d0fb2e8c6b555a5f =
+  BG.fromFFIType hs_bindgen_d0fb2e8c6b555a5f_base
+
+{-# NOINLINE heif_image_get_component #-}
+{-| __C declaration:__ @heif_image_get_component@
+
+    __defined at:__ @libheif\/heif_components.h 171:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8))
+heif_image_get_component =
+  BG.unsafePerformIO hs_bindgen_d0fb2e8c6b555a5f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16_readonly@
+foreign import ccall unsafe "hs_bindgen_f2584f6738c6a3ea" hs_bindgen_f2584f6738c6a3ea_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16_readonly@
+hs_bindgen_f2584f6738c6a3ea :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)))
+hs_bindgen_f2584f6738c6a3ea =
+  BG.fromFFIType hs_bindgen_f2584f6738c6a3ea_base
+
+{-# NOINLINE heif_image_get_component_uint16_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_uint16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 180:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16))
+heif_image_get_component_uint16_readonly =
+  BG.unsafePerformIO hs_bindgen_f2584f6738c6a3ea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16@
+foreign import ccall unsafe "hs_bindgen_e7308ea5505ed9aa" hs_bindgen_e7308ea5505ed9aa_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint16@
+hs_bindgen_e7308ea5505ed9aa :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)))
+hs_bindgen_e7308ea5505ed9aa =
+  BG.fromFFIType hs_bindgen_e7308ea5505ed9aa_base
+
+{-# NOINLINE heif_image_get_component_uint16 #-}
+{-| __C declaration:__ @heif_image_get_component_uint16@
+
+    __defined at:__ @libheif\/heif_components.h 183:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16))
+heif_image_get_component_uint16 =
+  BG.unsafePerformIO hs_bindgen_e7308ea5505ed9aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32_readonly@
+foreign import ccall unsafe "hs_bindgen_1df9b5a9909389e5" hs_bindgen_1df9b5a9909389e5_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32_readonly@
+hs_bindgen_1df9b5a9909389e5 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)))
+hs_bindgen_1df9b5a9909389e5 =
+  BG.fromFFIType hs_bindgen_1df9b5a9909389e5_base
+
+{-# NOINLINE heif_image_get_component_uint32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_uint32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 186:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32))
+heif_image_get_component_uint32_readonly =
+  BG.unsafePerformIO hs_bindgen_1df9b5a9909389e5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32@
+foreign import ccall unsafe "hs_bindgen_c256aea9f44c576a" hs_bindgen_c256aea9f44c576a_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint32@
+hs_bindgen_c256aea9f44c576a :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)))
+hs_bindgen_c256aea9f44c576a =
+  BG.fromFFIType hs_bindgen_c256aea9f44c576a_base
+
+{-# NOINLINE heif_image_get_component_uint32 #-}
+{-| __C declaration:__ @heif_image_get_component_uint32@
+
+    __defined at:__ @libheif\/heif_components.h 189:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32))
+heif_image_get_component_uint32 =
+  BG.unsafePerformIO hs_bindgen_c256aea9f44c576a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64_readonly@
+foreign import ccall unsafe "hs_bindgen_49af5aabed64b179" hs_bindgen_49af5aabed64b179_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64_readonly@
+hs_bindgen_49af5aabed64b179 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)))
+hs_bindgen_49af5aabed64b179 =
+  BG.fromFFIType hs_bindgen_49af5aabed64b179_base
+
+{-# NOINLINE heif_image_get_component_uint64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_uint64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 192:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64))
+heif_image_get_component_uint64_readonly =
+  BG.unsafePerformIO hs_bindgen_49af5aabed64b179
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64@
+foreign import ccall unsafe "hs_bindgen_c68cd4eb77fcda90" hs_bindgen_c68cd4eb77fcda90_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_uint64@
+hs_bindgen_c68cd4eb77fcda90 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)))
+hs_bindgen_c68cd4eb77fcda90 =
+  BG.fromFFIType hs_bindgen_c68cd4eb77fcda90_base
+
+{-# NOINLINE heif_image_get_component_uint64 #-}
+{-| __C declaration:__ @heif_image_get_component_uint64@
+
+    __defined at:__ @libheif\/heif_components.h 195:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64))
+heif_image_get_component_uint64 =
+  BG.unsafePerformIO hs_bindgen_c68cd4eb77fcda90
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8_readonly@
+foreign import ccall unsafe "hs_bindgen_430e6a5279a8eb49" hs_bindgen_430e6a5279a8eb49_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8_readonly@
+hs_bindgen_430e6a5279a8eb49 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)))
+hs_bindgen_430e6a5279a8eb49 =
+  BG.fromFFIType hs_bindgen_430e6a5279a8eb49_base
+
+{-# NOINLINE heif_image_get_component_int8_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int8_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 198:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8))
+heif_image_get_component_int8_readonly =
+  BG.unsafePerformIO hs_bindgen_430e6a5279a8eb49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8@
+foreign import ccall unsafe "hs_bindgen_2405d11fd23fb924" hs_bindgen_2405d11fd23fb924_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int8@
+hs_bindgen_2405d11fd23fb924 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)))
+hs_bindgen_2405d11fd23fb924 =
+  BG.fromFFIType hs_bindgen_2405d11fd23fb924_base
+
+{-# NOINLINE heif_image_get_component_int8 #-}
+{-| __C declaration:__ @heif_image_get_component_int8@
+
+    __defined at:__ @libheif\/heif_components.h 201:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8))
+heif_image_get_component_int8 =
+  BG.unsafePerformIO hs_bindgen_2405d11fd23fb924
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16_readonly@
+foreign import ccall unsafe "hs_bindgen_c938737756603ecb" hs_bindgen_c938737756603ecb_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16_readonly@
+hs_bindgen_c938737756603ecb :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)))
+hs_bindgen_c938737756603ecb =
+  BG.fromFFIType hs_bindgen_c938737756603ecb_base
+
+{-# NOINLINE heif_image_get_component_int16_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 204:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16))
+heif_image_get_component_int16_readonly =
+  BG.unsafePerformIO hs_bindgen_c938737756603ecb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16@
+foreign import ccall unsafe "hs_bindgen_4bd5f9edeeb4a65f" hs_bindgen_4bd5f9edeeb4a65f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int16@
+hs_bindgen_4bd5f9edeeb4a65f :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)))
+hs_bindgen_4bd5f9edeeb4a65f =
+  BG.fromFFIType hs_bindgen_4bd5f9edeeb4a65f_base
+
+{-# NOINLINE heif_image_get_component_int16 #-}
+{-| __C declaration:__ @heif_image_get_component_int16@
+
+    __defined at:__ @libheif\/heif_components.h 207:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16))
+heif_image_get_component_int16 =
+  BG.unsafePerformIO hs_bindgen_4bd5f9edeeb4a65f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32_readonly@
+foreign import ccall unsafe "hs_bindgen_cd7e0a4240e9ab65" hs_bindgen_cd7e0a4240e9ab65_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32_readonly@
+hs_bindgen_cd7e0a4240e9ab65 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)))
+hs_bindgen_cd7e0a4240e9ab65 =
+  BG.fromFFIType hs_bindgen_cd7e0a4240e9ab65_base
+
+{-# NOINLINE heif_image_get_component_int32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 210:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32))
+heif_image_get_component_int32_readonly =
+  BG.unsafePerformIO hs_bindgen_cd7e0a4240e9ab65
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32@
+foreign import ccall unsafe "hs_bindgen_8e14a238fb4bdb2f" hs_bindgen_8e14a238fb4bdb2f_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int32@
+hs_bindgen_8e14a238fb4bdb2f :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)))
+hs_bindgen_8e14a238fb4bdb2f =
+  BG.fromFFIType hs_bindgen_8e14a238fb4bdb2f_base
+
+{-# NOINLINE heif_image_get_component_int32 #-}
+{-| __C declaration:__ @heif_image_get_component_int32@
+
+    __defined at:__ @libheif\/heif_components.h 213:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32))
+heif_image_get_component_int32 =
+  BG.unsafePerformIO hs_bindgen_8e14a238fb4bdb2f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64_readonly@
+foreign import ccall unsafe "hs_bindgen_8208ed7cda7cd335" hs_bindgen_8208ed7cda7cd335_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64_readonly@
+hs_bindgen_8208ed7cda7cd335 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)))
+hs_bindgen_8208ed7cda7cd335 =
+  BG.fromFFIType hs_bindgen_8208ed7cda7cd335_base
+
+{-# NOINLINE heif_image_get_component_int64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_int64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 216:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64))
+heif_image_get_component_int64_readonly =
+  BG.unsafePerformIO hs_bindgen_8208ed7cda7cd335
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64@
+foreign import ccall unsafe "hs_bindgen_845006cd5c3d5175" hs_bindgen_845006cd5c3d5175_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_int64@
+hs_bindgen_845006cd5c3d5175 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)))
+hs_bindgen_845006cd5c3d5175 =
+  BG.fromFFIType hs_bindgen_845006cd5c3d5175_base
+
+{-# NOINLINE heif_image_get_component_int64 #-}
+{-| __C declaration:__ @heif_image_get_component_int64@
+
+    __defined at:__ @libheif\/heif_components.h 219:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64))
+heif_image_get_component_int64 =
+  BG.unsafePerformIO hs_bindgen_845006cd5c3d5175
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32_readonly@
+foreign import ccall unsafe "hs_bindgen_a342a573d33f4eef" hs_bindgen_a342a573d33f4eef_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32_readonly@
+hs_bindgen_a342a573d33f4eef :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CFloat)))
+hs_bindgen_a342a573d33f4eef =
+  BG.fromFFIType hs_bindgen_a342a573d33f4eef_base
+
+{-# NOINLINE heif_image_get_component_float32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_float32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 222:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CFloat))
+heif_image_get_component_float32_readonly =
+  BG.unsafePerformIO hs_bindgen_a342a573d33f4eef
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32@
+foreign import ccall unsafe "hs_bindgen_1d22608c8fd3d1cd" hs_bindgen_1d22608c8fd3d1cd_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float32@
+hs_bindgen_1d22608c8fd3d1cd :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CFloat)))
+hs_bindgen_1d22608c8fd3d1cd =
+  BG.fromFFIType hs_bindgen_1d22608c8fd3d1cd_base
+
+{-# NOINLINE heif_image_get_component_float32 #-}
+{-| __C declaration:__ @heif_image_get_component_float32@
+
+    __defined at:__ @libheif\/heif_components.h 225:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CFloat))
+heif_image_get_component_float32 =
+  BG.unsafePerformIO hs_bindgen_1d22608c8fd3d1cd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64_readonly@
+foreign import ccall unsafe "hs_bindgen_9a6ea0b8cce5e1a4" hs_bindgen_9a6ea0b8cce5e1a4_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64_readonly@
+hs_bindgen_9a6ea0b8cce5e1a4 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CDouble)))
+hs_bindgen_9a6ea0b8cce5e1a4 =
+  BG.fromFFIType hs_bindgen_9a6ea0b8cce5e1a4_base
+
+{-# NOINLINE heif_image_get_component_float64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_float64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 228:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst BG.CDouble))
+heif_image_get_component_float64_readonly =
+  BG.unsafePerformIO hs_bindgen_9a6ea0b8cce5e1a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64@
+foreign import ccall unsafe "hs_bindgen_8964541966e9204e" hs_bindgen_8964541966e9204e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_float64@
+hs_bindgen_8964541966e9204e :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CDouble)))
+hs_bindgen_8964541966e9204e =
+  BG.fromFFIType hs_bindgen_8964541966e9204e_base
+
+{-# NOINLINE heif_image_get_component_float64 #-}
+{-| __C declaration:__ @heif_image_get_component_float64@
+
+    __defined at:__ @libheif\/heif_components.h 231:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr BG.CDouble))
+heif_image_get_component_float64 =
+  BG.unsafePerformIO hs_bindgen_8964541966e9204e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32_readonly@
+foreign import ccall unsafe "hs_bindgen_11476314a2836a53" hs_bindgen_11476314a2836a53_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32_readonly@
+hs_bindgen_11476314a2836a53 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex32)))
+hs_bindgen_11476314a2836a53 =
+  BG.fromFFIType hs_bindgen_11476314a2836a53_base
+
+{-# NOINLINE heif_image_get_component_complex32_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_complex32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 234:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex32))
+heif_image_get_component_complex32_readonly =
+  BG.unsafePerformIO hs_bindgen_11476314a2836a53
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32@
+foreign import ccall unsafe "hs_bindgen_66fc2cecd8106650" hs_bindgen_66fc2cecd8106650_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex32@
+hs_bindgen_66fc2cecd8106650 :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex32)))
+hs_bindgen_66fc2cecd8106650 =
+  BG.fromFFIType hs_bindgen_66fc2cecd8106650_base
+
+{-# NOINLINE heif_image_get_component_complex32 #-}
+{-| __C declaration:__ @heif_image_get_component_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 237:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex32))
+heif_image_get_component_complex32 =
+  BG.unsafePerformIO hs_bindgen_66fc2cecd8106650
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64_readonly@
+foreign import ccall unsafe "hs_bindgen_d60d5ecfd6455d28" hs_bindgen_d60d5ecfd6455d28_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64_readonly@
+hs_bindgen_d60d5ecfd6455d28 :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex64)))
+hs_bindgen_d60d5ecfd6455d28 =
+  BG.fromFFIType hs_bindgen_d60d5ecfd6455d28_base
+
+{-# NOINLINE heif_image_get_component_complex64_readonly #-}
+{-| __C declaration:__ @heif_image_get_component_complex64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 240:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64_readonly :: BG.FunPtr (PtrConst.PtrConst Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (PtrConst.PtrConst Heif_complex64))
+heif_image_get_component_complex64_readonly =
+  BG.unsafePerformIO hs_bindgen_d60d5ecfd6455d28
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64@
+foreign import ccall unsafe "hs_bindgen_e96e94fa783df07c" hs_bindgen_e96e94fa783df07c_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_component_complex64@
+hs_bindgen_e96e94fa783df07c :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex64)))
+hs_bindgen_e96e94fa783df07c =
+  BG.fromFFIType hs_bindgen_e96e94fa783df07c_base
+
+{-# NOINLINE heif_image_get_component_complex64 #-}
+{-| __C declaration:__ @heif_image_get_component_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 243:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64 :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> BG.Ptr HsBindgen.Runtime.LibC.CSize -> IO (BG.Ptr Heif_complex64))
+heif_image_get_component_complex64 =
+  BG.unsafePerformIO hs_bindgen_e96e94fa783df07c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_e51068abbd490a0e" hs_bindgen_e51068abbd490a0e_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_gimi_component_content_id@
+hs_bindgen_e51068abbd490a0e :: IO (BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO Heif_error))
+hs_bindgen_e51068abbd490a0e =
+  BG.fromFFIType hs_bindgen_e51068abbd490a0e_base
+
+{-# NOINLINE heif_image_set_gimi_component_content_id #-}
+{-| __C declaration:__ @heif_image_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_components.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_gimi_component_content_id :: BG.FunPtr (BG.Ptr Heif_image -> HsBindgen.Runtime.LibC.Word32 -> PtrConst.PtrConst BG.CChar -> IO Heif_error)
+heif_image_set_gimi_component_content_id =
+  BG.unsafePerformIO hs_bindgen_e51068abbd490a0e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_0f97f63c89f3cfea" hs_bindgen_0f97f63c89f3cfea_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_get_omaf_image_projection@
+hs_bindgen_0f97f63c89f3cfea :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_omaf_image_projection))
+hs_bindgen_0f97f63c89f3cfea =
+  BG.fromFFIType hs_bindgen_0f97f63c89f3cfea_base
+
+{-# NOINLINE heif_image_handle_get_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_handle_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 83:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_omaf_image_projection :: BG.FunPtr (PtrConst.PtrConst Heif_image_handle -> IO Heif_omaf_image_projection)
+heif_image_handle_get_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_0f97f63c89f3cfea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_6fbccb1e4f1b88f8" hs_bindgen_6fbccb1e4f1b88f8_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_handle_set_omaf_image_projection@
+hs_bindgen_6fbccb1e4f1b88f8 :: IO (BG.FunPtr (BG.Ptr Heif_image_handle -> Heif_omaf_image_projection -> IO ()))
+hs_bindgen_6fbccb1e4f1b88f8 =
+  BG.fromFFIType hs_bindgen_6fbccb1e4f1b88f8_base
+
+{-# NOINLINE heif_image_handle_set_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_handle_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 86:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_omaf_image_projection :: BG.FunPtr (BG.Ptr Heif_image_handle -> Heif_omaf_image_projection -> IO ())
+heif_image_handle_set_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_6fbccb1e4f1b88f8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_c3044c458d0dafed" hs_bindgen_c3044c458d0dafed_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_get_omaf_image_projection@
+hs_bindgen_c3044c458d0dafed :: IO (BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_omaf_image_projection))
+hs_bindgen_c3044c458d0dafed =
+  BG.fromFFIType hs_bindgen_c3044c458d0dafed_base
+
+{-# NOINLINE heif_image_get_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 94:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_omaf_image_projection :: BG.FunPtr (PtrConst.PtrConst Heif_image -> IO Heif_omaf_image_projection)
+heif_image_get_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_c3044c458d0dafed
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_c9668dd5bc64b2fe" hs_bindgen_c9668dd5bc64b2fe_base ::
+     IO (BG.FunPtr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_image_set_omaf_image_projection@
+hs_bindgen_c9668dd5bc64b2fe :: IO (BG.FunPtr (BG.Ptr Heif_image -> Heif_omaf_image_projection -> IO ()))
+hs_bindgen_c9668dd5bc64b2fe =
+  BG.fromFFIType hs_bindgen_c9668dd5bc64b2fe_base
+
+{-# NOINLINE heif_image_set_omaf_image_projection #-}
+{-| __C declaration:__ @heif_image_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 97:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_omaf_image_projection :: BG.FunPtr (BG.Ptr Heif_image -> Heif_omaf_image_projection -> IO ())
+heif_image_set_omaf_image_projection =
+  BG.unsafePerformIO hs_bindgen_c9668dd5bc64b2fe
diff --git a/src-wasm/Codec/HEIF/Bindings/Generated/Global.hs b/src-wasm/Codec/HEIF/Bindings/Generated/Global.hs
new file mode 100644
--- /dev/null
+++ b/src-wasm/Codec/HEIF/Bindings/Generated/Global.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.Global
+    ( Codec.HEIF.Bindings.Generated.Global.heif_error_success
+    )
+  where
+
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "/* org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_error_success */"
+  , "__attribute__ ((const))"
+  , "heif_error const *hs_bindgen_709a0362ac0b2f83 (void)"
+  , "{"
+  , "  return &heif_error_success;"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_error_success@
+foreign import ccall unsafe "hs_bindgen_709a0362ac0b2f83" hs_bindgen_709a0362ac0b2f83_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_get_heif_error_success@
+hs_bindgen_709a0362ac0b2f83 :: IO (PtrConst.PtrConst Heif_error)
+hs_bindgen_709a0362ac0b2f83 =
+  BG.fromFFIType hs_bindgen_709a0362ac0b2f83_base
+
+{-# NOINLINE hs_bindgen_1c82b35685b91c76 #-}
+{-| __C declaration:__ @heif_error_success@
+
+    __defined at:__ @libheif\/heif_error.h 304:37@
+
+    __exported by:__ @libheif\/heif.h@
+
+    __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_heif_error_success@
+-}
+hs_bindgen_1c82b35685b91c76 :: PtrConst.PtrConst Heif_error
+hs_bindgen_1c82b35685b91c76 =
+  BG.unsafePerformIO hs_bindgen_709a0362ac0b2f83
+
+{-# NOINLINE heif_error_success #-}
+heif_error_success :: Heif_error
+heif_error_success =
+  BG.unsafePerformIO (PtrConst.peek hs_bindgen_1c82b35685b91c76)
diff --git a/src-wasm/Codec/HEIF/Bindings/Generated/Safe.hs b/src-wasm/Codec/HEIF/Bindings/Generated/Safe.hs
new file mode 100644
--- /dev/null
+++ b/src-wasm/Codec/HEIF/Bindings/Generated/Safe.hs
@@ -0,0 +1,11179 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.Safe
+    ( Codec.HEIF.Bindings.Generated.Safe.heif_get_version
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number_major
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number_minor
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_version_number_maintenance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_string_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_init
+    , Codec.HEIF.Bindings.Generated.Safe.heif_deinit
+    , Codec.HEIF.Bindings.Generated.Safe.heif_load_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_load_plugins
+    , Codec.HEIF.Bindings.Generated.Safe.heif_unload_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Safe.heif_free_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Safe.heif_register_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_register_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.Safe.heif_register_decoder
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_colorspace
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_chroma_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_primary_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_primary_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_crop
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_extract_area
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_bits_per_pixel_range
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_channel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane_readonly2
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_plane2
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_scale_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_extend_to_size_fill_with_zero
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_decoding_warnings
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_decoding_warning
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_create
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_plane
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_plane_safe
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_extend_padding_to_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_set_defaults
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_ext_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_ext_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_color_conversion_options_ext_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_set_color_primaries
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_set_transfer_characteristics
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_set_matrix_coefficients
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_nclx_color_profile_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Safe.heif_mastering_display_colour_volume_decode
+    , Codec.HEIF.Bindings.Generated.Safe.heif_read_main_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_read_minor_version_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_fourcc_to_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_brand_to_fourcc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_has_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_list_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Safe.heif_free_list_of_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_file_mime_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_check_filetype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_has_compatible_filetype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_check_jpeg_filetype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_main_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_metadata_compression_method_supported
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_metadata_blocks
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_metadata_block_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_content_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_size
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_metadata_item_uri_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_exif_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_XMP_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_XMP_metadata2
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_generic_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_generic_uri_metadata
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_depth_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_depth_images
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_depth_image_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_depth_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_depth_representation_info_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_depth_image_representation_info
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_thumbnails
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_thumbnail_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_thumbnail
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_encode_thumbnail
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_assign_thumbnail
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_auxiliary_images
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_list_of_auxiliary_image_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_release_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_auxiliary_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_free_auxiliary_types
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_entity_groups
+    , Codec.HEIF.Bindings.Generated.Safe.heif_entity_groups_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_global_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_disabled_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_security_limits
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_maximum_image_size_limit
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_file
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_memory
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_memory_without_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_read_from_reader
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_number_of_top_level_images
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_is_top_level_image_ID
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_list_of_top_level_image_IDs
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_primary_image_ID
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_primary_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_image_handle
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_debug_dump_boxes_to_file
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_write_mini_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_write_to_file
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_write
+    , Codec.HEIF.Bindings.Generated.Safe.heif_have_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_get_compression_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supports_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supports_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_encoder
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_lossy_quality
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_lossless
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_logging_level
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_list_parameters
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_valid_integer_range
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_valid_integer_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_get_valid_string_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_integer_valid_range
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter_string
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter_string
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_string_valid_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_parameter_integer_valid_values
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_set_parameter
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_get_parameter
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_has_default
+    , Codec.HEIF.Bindings.Generated.Safe.heif_orientation_concat
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoding_options_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_encode_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_overlay_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_primary_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_major_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_unif
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supportes_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_encoder_descriptor_supportes_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_set_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_get_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Safe.heif_have_decoder_for_format
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoding_options_free
+    , Codec.HEIF.Bindings.Generated.Safe.heif_get_decoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Safe.heif_decode_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_release
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_is_primary_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_item_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_alpha_channel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_luma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_chroma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_preferred_decoding_colorspace
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_ispe_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_ispe_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_context
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_cmpd_components
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_cmpd_component_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_cmpd_component_type_uri
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_has_gimi_component_content_ids
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_image_tiling
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_grid_image_tile_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_decode_image_tile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_encode_grid
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_grid_image
+    , Codec.HEIF.Bindings.Generated.Safe.heif_context_add_image_tile
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_number_of_used_components
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_channel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_width
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_height
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_number_of_components
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_component_type
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_add_component
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint16_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint16
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_uint64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int8_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int8
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int16_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int16
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_int64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_float64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex32_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex32
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex64_readonly
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_component_complex64
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_handle_set_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Safe.heif_image_set_omaf_image_projection
+    )
+  where
+
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.IsArray as IsA
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "char const *hs_bindgen_526a1f6b22fefe8b (void)"
+  , "{"
+  , "  return (heif_get_version)();"
+  , "}"
+  , "uint32_t hs_bindgen_d348cdf389fc821b (void)"
+  , "{"
+  , "  return (heif_get_version_number)();"
+  , "}"
+  , "signed int hs_bindgen_54539907a8a819ec (void)"
+  , "{"
+  , "  return (heif_get_version_number_major)();"
+  , "}"
+  , "signed int hs_bindgen_99688cbd2bdbfbf1 (void)"
+  , "{"
+  , "  return (heif_get_version_number_minor)();"
+  , "}"
+  , "signed int hs_bindgen_8c29009de8a18700 (void)"
+  , "{"
+  , "  return (heif_get_version_number_maintenance)();"
+  , "}"
+  , "void hs_bindgen_fcaafd84ca7cd587 ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_string_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_3ca612619d3ab3ae ("
+  , "  heif_init_params *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_init)(arg1);"
+  , "}"
+  , "void hs_bindgen_9757d907b81ea727 (void)"
+  , "{"
+  , "  (heif_deinit)();"
+  , "}"
+  , "void hs_bindgen_d87782b5fd1266aa ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_load_plugin)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_810a0abbae4db007 ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  signed int *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_load_plugins)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_8dc42646c10ca139 ("
+  , "  heif_plugin_info const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_unload_plugin)(arg1);"
+  , "}"
+  , "char const *const *hs_bindgen_576d8a6064774f22 (void)"
+  , "{"
+  , "  return (heif_get_plugin_directories)();"
+  , "}"
+  , "void hs_bindgen_515afb4714206d4e ("
+  , "  char const *const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_plugin_directories)(arg1);"
+  , "}"
+  , "void hs_bindgen_4723fe4fa34139fb ("
+  , "  heif_decoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_decoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_39215f276df43117 ("
+  , "  heif_encoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_encoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_ba37352b5e42f3a1 ("
+  , "  heif_context *arg1,"
+  , "  heif_decoder_plugin const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_register_decoder)(arg1, arg2);"
+  , "}"
+  , "heif_colorspace hs_bindgen_0e1ae4cfeb1ed87e ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_colorspace)(arg1);"
+  , "}"
+  , "heif_chroma hs_bindgen_8c2218fdbacdba5b ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_chroma_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_1ccc91118173a9e1 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_width)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d2e454a8a0e1e648 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_b5b1443b20a8511b ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_827b20df504b1a95 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_height)(arg1);"
+  , "}"
+  , "void hs_bindgen_aceb30cee371fd39 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_crop)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_ba79018a9ec3506c ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_image **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_extract_area)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "signed int hs_bindgen_5fcef9fa747db223 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_770d1451f25f23d0 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel_range)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_ac6d99ace06cf7a9 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_channel)(arg1, arg2);"
+  , "}"
+  , "uint8_t const *hs_bindgen_047b40903c05997c ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_462f74b6b0e51669 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t const *hs_bindgen_c562b49565dea50d ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly2)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_c7baba8551bab583 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane2)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_356bd5ab0a7e162c ("
+  , "  heif_image const *arg1,"
+  , "  heif_image **arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  heif_scaling_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_scale_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_1f51057f3f3ab220 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_to_size_fill_with_zero)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_0f73243f659b5839 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_decoding_warnings)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_ff4db425910d967f ("
+  , "  heif_image *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_add_decoding_warning)(arg1, *arg2);"
+  , "}"
+  , "void hs_bindgen_40ef7aca6e2177d1 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_c59879f567050fcc ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_382fdd46c680e29d ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d5e4426964217a2b ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_048c16976f9d00a6 ("
+  , "  signed int arg1,"
+  , "  signed int arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_image **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_create)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_39098c398bab3049 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_add_plane)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_b43a95f5d0d97321 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_image_add_plane_safe)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_66befebbb3cfe08f ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_premultiplied_alpha)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7f39c909f50251bd ("
+  , "  heif_image *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "void hs_bindgen_0a9de4fb42d7aef8 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_padding_to_size)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_635c898d9653c258 ("
+  , "  heif_color_conversion_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_set_defaults)(arg1);"
+  , "}"
+  , "heif_color_conversion_options_ext *hs_bindgen_f9767fc846991850 (void)"
+  , "{"
+  , "  return (heif_color_conversion_options_ext_alloc)();"
+  , "}"
+  , "void hs_bindgen_e89e40cb42b3dbf6 ("
+  , "  heif_color_conversion_options_ext *arg1,"
+  , "  heif_color_conversion_options_ext const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_015954e3f538afdf ("
+  , "  heif_color_conversion_options_ext *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_c2e2151a49511790 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_f3b5e52cf4c98431 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_70185cdfc94f6180 ("
+  , "  heif_image_handle const *arg1,"
+  , "  void *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_fd1b0dc517553ea4 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_color_primaries)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4cd780e465edf8f1 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_transfer_characteristics)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4c2b93b4d0d31039 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_matrix_coefficients)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4878761a3eacdfd6 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "heif_color_profile_nclx *hs_bindgen_252b9611425ba79d (void)"
+  , "{"
+  , "  return (heif_nclx_color_profile_alloc)();"
+  , "}"
+  , "void hs_bindgen_baafd267dd3a7eda ("
+  , "  heif_color_profile_nclx *arg1"
+  , ")"
+  , "{"
+  , "  (heif_nclx_color_profile_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_451f04ca40155e84 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_6a45102328f17806 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_ea1a521369743d6e ("
+  , "  heif_image const *arg1,"
+  , "  void *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4a81755ffaafdd5e ("
+  , "  heif_image const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8b84f0de01d3fc38 ("
+  , "  heif_image *arg1,"
+  , "  char const *arg2,"
+  , "  void const *arg3,"
+  , "  size_t const arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_image_set_raw_color_profile)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_290eaac614fe5c21 ("
+  , "  heif_image *arg1,"
+  , "  heif_color_profile_nclx const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_set_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d9106e024a66d6c7 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_content_light_level)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_004c713c5bed589a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_content_light_level)(arg1);"
+  , "}"
+  , "void hs_bindgen_224bdf9ae9bc86e4 ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0573bf5680dead95 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_61eb469d896a68ed ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b94eaa9d4f03b208 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_65fda22aec99af16 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ba412b5c11d4ce2c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "void hs_bindgen_40e6f048c71c0839 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_f5f710dd952f38b2 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7c7394e5ab9a2522 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_e71af6fb39f6c6a7 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_5aefb28b52c74a49 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fb72753dff464187 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e4865cd1be357ee7 ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_9975a4f39370fa33 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_be117bf48bd413ce ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b6a2b9efd97046de ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0392b2a2a62a17b9 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_2cc0bd424cc13ef0 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_d822f8181b9f461f ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_75f707df4737c64c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_88b825fccd56f83a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_d54b499790eb4475 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7af8bd15dda9d8da ("
+  , "  heif_mastering_display_colour_volume const *arg1,"
+  , "  heif_decoded_mastering_display_colour_volume *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_mastering_display_colour_volume_decode)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_eb070136a1fc7d04 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_main_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_99628e0c9a83fd4a ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_minor_version_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_8ddb7de5c3530060 ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_fourcc_to_brand)(arg1);"
+  , "}"
+  , "void hs_bindgen_9ccdf2cb99660b08 ("
+  , "  heif_brand2 arg1,"
+  , "  char *arg2"
+  , ")"
+  , "{"
+  , "  (heif_brand_to_fourcc)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_80dc19fc26906086 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_has_compatible_brand)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_97aa636c233d899b ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_brand2 **arg3,"
+  , "  signed int *arg4,"
+  , "  struct heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_list_compatible_brands)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_9bb6fcadffe04582 ("
+  , "  heif_brand2 *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_list_of_compatible_brands)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_db3e04ae1bcbe4c0 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_get_file_mime_type)(arg1, arg2);"
+  , "}"
+  , "enum heif_filetype_result hs_bindgen_ab7eedc4f1bb8c0b ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_filetype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8913d7bc32d127f4 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_has_compatible_filetype)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d83270b51d72cc95 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_jpeg_filetype)(arg1, arg2);"
+  , "}"
+  , "enum heif_brand hs_bindgen_bae440faea94f3ea ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_main_brand)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_77b745f8ec6e141f ("
+  , "  enum heif_metadata_compression arg1"
+  , ")"
+  , "{"
+  , "  return (heif_metadata_compression_method_supported)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_221fe3032a7fe8dd ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_metadata_blocks)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0789072dbb9a1da7 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_metadata_block_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_a597fdc86acc8f1b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_e419666dded9a0a4 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_content_type)(arg1, arg2);"
+  , "}"
+  , "size_t hs_bindgen_c5dbe28d404f70c2 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_size)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_40f28b061d8968ee ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_metadata)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_5add5de233105e0a ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_item_uri_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_50f28b858c52d38b ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_exif_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_5e1f813465bb1fe7 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_XMP_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_a4bb5759aaf233ed ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  enum heif_metadata_compression arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_add_XMP_metadata2)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_a112ed25576e1ead ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  char const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_4228fc144395b704 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  heif_item_id *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_uri_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "signed int hs_bindgen_c9fd0d64d2e4ff6c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_depth_image)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_3168bad746d58363 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_depth_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_6ce7ff0f64592f3b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_depth_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_bca9f64d9bf4b689 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_depth_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_3e42610ddf090daa ("
+  , "  heif_depth_representation_info const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_depth_representation_info_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_be71395884eb3a2e ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_depth_representation_info const **arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_depth_image_representation_info)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_789c72581f93b4f7 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_thumbnails)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_3f158a04db84b93c ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_thumbnail_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_74fcac5da0f6fe3d ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_0d7512b56eac000e ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_encoder *arg4,"
+  , "  heif_encoding_options const *arg5,"
+  , "  signed int arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_thumbnail)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_efcd1e0532f3cce0 ("
+  , "  struct heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_assign_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_c91e031dfd1a0e78 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_auxiliary_images)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_fcf1bde2005bf76f ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_auxiliary_image_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_7eda525d1bdf7412 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7a949d12902feb72 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_aad627a91e87ac22 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_auxiliary_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_3e5bdbce07abeacb ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_free_auxiliary_types)(arg1, arg2);"
+  , "}"
+  , "heif_entity_group *hs_bindgen_324b9ac9bccacbea ("
+  , "  heif_context const *arg1,"
+  , "  uint32_t arg2,"
+  , "  heif_item_id arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_entity_groups)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_5b6c3bc2afeaec5a ("
+  , "  heif_entity_group *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_entity_groups_release)(arg1, arg2);"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_8bb38c3366b348bc (void)"
+  , "{"
+  , "  return (heif_get_global_security_limits)();"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_21dab9bbdea240f9 (void)"
+  , "{"
+  , "  return (heif_get_disabled_security_limits)();"
+  , "}"
+  , "heif_security_limits *hs_bindgen_5ef579d9235552d1 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_security_limits)(arg1);"
+  , "}"
+  , "void hs_bindgen_57a440143dafec19 ("
+  , "  heif_context *arg1,"
+  , "  heif_security_limits const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_security_limits)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_cf4163e78a532a00 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_maximum_image_size_limit)(arg1, arg2);"
+  , "}"
+  , "heif_context *hs_bindgen_4f11b82642ca89a5 (void)"
+  , "{"
+  , "  return (heif_context_alloc)();"
+  , "}"
+  , "void hs_bindgen_97d3146ab8e2e79e ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  (heif_context_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_da6b2212d5c04e61 ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_reading_options const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_read_from_file)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e14cdfad18c1ee01 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_41af2790f3e2e582 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory_without_copy)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_41beae81a04b6975 ("
+  , "  heif_context *arg1,"
+  , "  heif_reader const *arg2,"
+  , "  void *arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_reader)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_24967fda9033f6a8 ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_number_of_top_level_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_60a32ad03b88d023 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_context_is_top_level_image_ID)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0b88933276286d97 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_list_of_top_level_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d2b9465ca3f1a7a3 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_ID)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_eddef87dcb6b9da2 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_handle)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_64043a0ab8e93721 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_b25f68ddfd09f003 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_debug_dump_boxes_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_33eec71afe55377e ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_write_mini_format)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4ccb67696cf9af48 ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_write_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_567900ed014ef754 ("
+  , "  heif_context *arg1,"
+  , "  heif_writer *arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_write)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_eec4a0d4bef90233 ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_encoder_for_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_52de4c5e7a32818d ("
+  , "  heif_compression_format arg1,"
+  , "  char const *arg2,"
+  , "  heif_encoder_descriptor const **arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_get_encoder_descriptors)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_1174aa754ff0ec8a ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_db3d052821cb7feb ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "heif_compression_format hs_bindgen_7a091fe5257e2928 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_compression_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_9855aa70160fb232 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e8aa3e2ad6e21521 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossless_compression)(arg1);"
+  , "}"
+  , "void hs_bindgen_5e0d51edb7f5e790 ("
+  , "  heif_context *arg1,"
+  , "  heif_encoder_descriptor const *arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e87023be50eb7156 ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder_for_format)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_9ef0bda629baf529 ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoder_release)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_eb93268554bef6fb ("
+  , "  heif_encoder const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_get_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_eb6a076f846bdaa3 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossy_quality)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_979d01b0f5a3cad4 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossless)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_24781b15a9b8e5df ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_logging_level)(arg1, arg2);"
+  , "}"
+  , "heif_encoder_parameter const *const *hs_bindgen_18ea2b17f3c2144a ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_list_parameters)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_af3caa9ff0a88eb8 ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_name)(arg1);"
+  , "}"
+  , "enum heif_encoder_parameter_type hs_bindgen_a1285395e3755e61 ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_type)(arg1);"
+  , "}"
+  , "void hs_bindgen_f5e5f609ff5ef7aa ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_parameter_get_valid_integer_range)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_41c9049f903741b9 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int const **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_encoder_parameter_get_valid_integer_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_83a47350b89b3e72 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  char const *const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_parameter_get_valid_string_values)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_18cabf49ede306b0 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_9904a2037102bffe ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_1bc5d24eb27254b7 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_encoder_parameter_integer_valid_range)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_836ffd64ae147e78 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_19a10bdb28e623c2 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_6e45433398da3eb9 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_string)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_85f0477af2b5af28 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter_string)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_813480544a744b7d ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *const **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_parameter_string_valid_values)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_06fdadacba1a360c ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int *arg7,"
+  , "  signed int const **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_encoder_parameter_integer_valid_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_3e58e2dcaa03feb8 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_931fa955709de69d ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_cadb6a2220566e31 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_has_default)(arg1, arg2);"
+  , "}"
+  , "heif_orientation hs_bindgen_73125422635fa771 ("
+  , "  heif_orientation arg1,"
+  , "  heif_orientation arg2"
+  , ")"
+  , "{"
+  , "  return (heif_orientation_concat)(arg1, arg2);"
+  , "}"
+  , "heif_encoding_options *hs_bindgen_1800acc2f4b03a9f (void)"
+  , "{"
+  , "  return (heif_encoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_fe75402432667b03 ("
+  , "  heif_encoding_options *arg1,"
+  , "  heif_encoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_da67241096710c84 ("
+  , "  heif_encoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_28f09a80ffe40e3d ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_encoder *arg3,"
+  , "  heif_encoding_options const *arg4,"
+  , "  heif_image_handle **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_encode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_60d0c75f40f4d059 ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_item_id const *arg5,"
+  , "  int32_t *arg6,"
+  , "  uint16_t const *arg7,"
+  , "  heif_image_handle **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_context_add_overlay_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_63e1fd26aac84129 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_primary_image)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_97f56663bca77c21 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_major_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_03d0e64d393a7f95 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_add_compatible_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_17c891d9806c5635 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_unif)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7331b243ac8c0c44 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d9ed40b1c61c857e ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossless_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_6b3293489791860e ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  char const *arg3,"
+  , "  heif_encoder_descriptor const **arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_encoder_descriptors)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_28f0ed35cb9d2279 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_max_decoding_threads)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_70c02de3fb64eb44 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_max_decoding_threads)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fae52e49bce8c2d9 ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_decoder_for_format)(arg1);"
+  , "}"
+  , "heif_decoding_options *hs_bindgen_102ab775cba50d0e (void)"
+  , "{"
+  , "  return (heif_decoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_dd38a52f42e667b2 ("
+  , "  heif_decoding_options *arg1,"
+  , "  heif_decoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_9ce764a4e512cd45 ("
+  , "  heif_decoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_89078000e479e916 ("
+  , "  heif_compression_format arg1,"
+  , "  heif_decoder_descriptor const **arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_get_decoder_descriptors)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_6dbb7f5c61ececf8 ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_ac750dacaf5ed61b ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_9df2f46857b2f874 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_decode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_3f481728e9551d14 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_c047b47f9376d997 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_primary_image)(arg1);"
+  , "}"
+  , "heif_item_id hs_bindgen_36d4e2a162ff52b2 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_item_id)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ebd6ded40b5d2ee4 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_43b18c70d95495b8 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d43fe68f9e8aea95 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_alpha_channel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_318428b307f06343 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_be41ab4faa6f8082 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_luma_bits_per_pixel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_984920cbd156ac9b ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_chroma_bits_per_pixel)(arg1);"
+  , "}"
+  , "void hs_bindgen_f5e3531e6391b927 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_colorspace *arg2,"
+  , "  heif_chroma *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_preferred_decoding_colorspace)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_d0e9054b24cf1428 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_dbbbf9b131586b02 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_3c36641a28b1e88c ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_context *hs_bindgen_84a3dea317661a70 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_context)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_e67495bf8fb75694 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_content_id)(arg1);"
+  , "}"
+  , "void hs_bindgen_a61840a08f259978 ("
+  , "  heif_image_handle *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_content_id)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_ecf5d96ae1394088 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_cmpd_components)(arg1);"
+  , "}"
+  , "uint16_t hs_bindgen_c39b365ae6463988 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_df63ee961806d207 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type_uri)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_6a5a1af4a8a1b33e ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_gimi_component_content_ids)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_a39896583d9d4999 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_component_content_id)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_dacd0cb9d512c937 ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_898454a03bf14ab5 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  struct heif_image_tiling *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_image_tiling)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_413be3dbf7649192 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_item_id *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_handle_get_grid_image_tile_id)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_f101837a6b5be78b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  uint32_t arg6,"
+  , "  uint32_t arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_handle_decode_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_164a168311e3f152 ("
+  , "  heif_context *arg1,"
+  , "  heif_image **arg2,"
+  , "  uint16_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_encoder *arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_grid)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_7c8ae7abdb656611 ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_add_grid_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_03065a3517ed4b58 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_image const *arg5,"
+  , "  heif_encoder *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "uint32_t hs_bindgen_4c8ac68e14c896d9 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_number_of_used_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_89f9c71152d117b0 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "heif_channel hs_bindgen_95adbac0d70eaf89 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_channel)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_2563edac91916690 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_width)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_708542ac3769da22 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_24cce2d768157520 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_1b3bc84f810e6784 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_type)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_3427ead05335058d ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_08e2626fbb4c7263 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_8f4c6fe1328df951 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_da1741b447f6b55f ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_type)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_c06a69cd444c0e91 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_246e8aac86313c19 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_58211ee9d9aaff0b ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_component_datatype arg5,"
+  , "  signed int arg6,"
+  , "  uint32_t *arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_add_component)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "uint8_t const *hs_bindgen_f3b3dd6d12db8090 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_797598038668dd27 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t const *hs_bindgen_dd2caf5774deaa63 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t *hs_bindgen_c24b1fb221a59544 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t const *hs_bindgen_f7092ec4941635e4 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t *hs_bindgen_b69a8682c27eebbe ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t const *hs_bindgen_21af790d31a25679 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t *hs_bindgen_052a1b04a5028cc7 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t const *hs_bindgen_0647bc125c518139 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t *hs_bindgen_2b6baabe97efc9ee ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t const *hs_bindgen_05cd3db068fb993a ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t *hs_bindgen_3a8ffa58a1670f46 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t const *hs_bindgen_f59a29fdf460e965 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t *hs_bindgen_80e3e994059d8dc9 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t const *hs_bindgen_9f7c83bd2e97ad43 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t *hs_bindgen_fee1de1a1474b6a3 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64)(arg1, arg2, arg3);"
+  , "}"
+  , "float const *hs_bindgen_05ed1c08b5116807 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "float *hs_bindgen_ad009c9ed1ffc812 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32)(arg1, arg2, arg3);"
+  , "}"
+  , "double const *hs_bindgen_de66df56dbf48814 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "double *hs_bindgen_0ad1b60eeb8d63bd ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 const *hs_bindgen_ac4a57dd34ca375a ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 *hs_bindgen_cfa79a05b01a8fc7 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 const *hs_bindgen_e0f8d25e700e39b7 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 *hs_bindgen_378fc308bf4e003a ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_430d40ab533188ef ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_dc0b57c80dcd5111 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_c2c7dbcbc67f17cb ("
+  , "  heif_image_handle *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_78b31f0f9d6a835b ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_88e80c816c94bac9 ("
+  , "  heif_image *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version@
+foreign import ccall safe "hs_bindgen_526a1f6b22fefe8b" hs_bindgen_526a1f6b22fefe8b_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version@
+hs_bindgen_526a1f6b22fefe8b :: IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_526a1f6b22fefe8b =
+  BG.fromFFIType hs_bindgen_526a1f6b22fefe8b_base
+
+{-| __C declaration:__ @heif_get_version@
+
+    __defined at:__ @libheif\/heif_library.h 72:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version :: IO (PtrConst.PtrConst BG.CChar)
+heif_get_version = hs_bindgen_526a1f6b22fefe8b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number@
+foreign import ccall safe "hs_bindgen_d348cdf389fc821b" hs_bindgen_d348cdf389fc821b_base ::
+     IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number@
+hs_bindgen_d348cdf389fc821b :: IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_d348cdf389fc821b =
+  BG.fromFFIType hs_bindgen_d348cdf389fc821b_base
+
+{-| __C declaration:__ @heif_get_version_number@
+
+    __defined at:__ @libheif\/heif_library.h 76:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number :: IO HsBindgen.Runtime.LibC.Word32
+heif_get_version_number = hs_bindgen_d348cdf389fc821b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_major@
+foreign import ccall safe "hs_bindgen_54539907a8a819ec" hs_bindgen_54539907a8a819ec_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_major@
+hs_bindgen_54539907a8a819ec :: IO BG.CInt
+hs_bindgen_54539907a8a819ec =
+  BG.fromFFIType hs_bindgen_54539907a8a819ec_base
+
+{-| __C declaration:__ @heif_get_version_number_major@
+
+    __defined at:__ @libheif\/heif_library.h 79:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_major :: IO BG.CInt
+heif_get_version_number_major =
+  hs_bindgen_54539907a8a819ec
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_minor@
+foreign import ccall safe "hs_bindgen_99688cbd2bdbfbf1" hs_bindgen_99688cbd2bdbfbf1_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_minor@
+hs_bindgen_99688cbd2bdbfbf1 :: IO BG.CInt
+hs_bindgen_99688cbd2bdbfbf1 =
+  BG.fromFFIType hs_bindgen_99688cbd2bdbfbf1_base
+
+{-| __C declaration:__ @heif_get_version_number_minor@
+
+    __defined at:__ @libheif\/heif_library.h 81:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_minor :: IO BG.CInt
+heif_get_version_number_minor =
+  hs_bindgen_99688cbd2bdbfbf1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_maintenance@
+foreign import ccall safe "hs_bindgen_8c29009de8a18700" hs_bindgen_8c29009de8a18700_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_version_number_maintenance@
+hs_bindgen_8c29009de8a18700 :: IO BG.CInt
+hs_bindgen_8c29009de8a18700 =
+  BG.fromFFIType hs_bindgen_8c29009de8a18700_base
+
+{-| __C declaration:__ @heif_get_version_number_maintenance@
+
+    __defined at:__ @libheif\/heif_library.h 83:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_maintenance :: IO BG.CInt
+heif_get_version_number_maintenance =
+  hs_bindgen_8c29009de8a18700
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_string_release@
+foreign import ccall safe "hs_bindgen_fcaafd84ca7cd587" hs_bindgen_fcaafd84ca7cd587_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_string_release@
+hs_bindgen_fcaafd84ca7cd587 ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_fcaafd84ca7cd587 =
+  BG.fromFFIType hs_bindgen_fcaafd84ca7cd587_base
+
+{-| __C declaration:__ @heif_string_release@
+
+    __defined at:__ @libheif\/heif_library.h 100:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_string_release ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+heif_string_release = hs_bindgen_fcaafd84ca7cd587
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_init@
+foreign import ccall safe "hs_bindgen_3ca612619d3ab3ae" hs_bindgen_3ca612619d3ab3ae_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_init@
+hs_bindgen_3ca612619d3ab3ae ::
+     BG.Ptr Heif_init_params
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_3ca612619d3ab3ae =
+  BG.fromFFIType hs_bindgen_3ca612619d3ab3ae_base
+
+{-| __C declaration:__ @heif_init@
+
+    __defined at:__ @libheif\/heif_library.h 133:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_init ::
+     BG.Ptr Heif_init_params
+  -> IO Heif_error
+heif_init =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_3ca612619d3ab3ae x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_deinit@
+foreign import ccall safe "hs_bindgen_9757d907b81ea727" hs_bindgen_9757d907b81ea727_base ::
+     IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_deinit@
+hs_bindgen_9757d907b81ea727 :: IO ()
+hs_bindgen_9757d907b81ea727 =
+  BG.fromFFIType hs_bindgen_9757d907b81ea727_base
+
+{-| __C declaration:__ @heif_deinit@
+
+    __defined at:__ @libheif\/heif_library.h 148:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_deinit :: IO ()
+heif_deinit = hs_bindgen_9757d907b81ea727
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugin@
+foreign import ccall safe "hs_bindgen_d87782b5fd1266aa" hs_bindgen_d87782b5fd1266aa_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugin@
+hs_bindgen_d87782b5fd1266aa ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d87782b5fd1266aa =
+  BG.fromFFIType hs_bindgen_d87782b5fd1266aa_base
+
+{-| __C declaration:__ @heif_load_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 170:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugin ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugin@
+  -> IO Heif_error
+heif_load_plugin =
+  \filename0 ->
+    \out_plugin1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_d87782b5fd1266aa filename0 out_plugin1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugins@
+foreign import ccall safe "hs_bindgen_810a0abbae4db007" hs_bindgen_810a0abbae4db007_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_load_plugins@
+hs_bindgen_810a0abbae4db007 ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_810a0abbae4db007 =
+  BG.fromFFIType hs_bindgen_810a0abbae4db007_base
+
+{-| __C declaration:__ @heif_load_plugins@
+
+    __defined at:__ @libheif\/heif_library.h 173:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugins ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @directory@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugins@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_nPluginsLoaded@
+  -> BG.CInt
+     -- ^ __C declaration:__ @output_array_size@
+  -> IO Heif_error
+heif_load_plugins =
+  \directory0 ->
+    \out_plugins1 ->
+      \out_nPluginsLoaded2 ->
+        \output_array_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_810a0abbae4db007 directory0 out_plugins1 out_nPluginsLoaded2 output_array_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_unload_plugin@
+foreign import ccall safe "hs_bindgen_8dc42646c10ca139" hs_bindgen_8dc42646c10ca139_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_unload_plugin@
+hs_bindgen_8dc42646c10ca139 ::
+     PtrConst.PtrConst Heif_plugin_info
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8dc42646c10ca139 =
+  BG.fromFFIType hs_bindgen_8dc42646c10ca139_base
+
+{-| __C declaration:__ @heif_unload_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 179:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_unload_plugin ::
+     PtrConst.PtrConst Heif_plugin_info
+     -- ^ __C declaration:__ @plugin@
+  -> IO Heif_error
+heif_unload_plugin =
+  \plugin0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_8dc42646c10ca139 plugin0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_plugin_directories@
+foreign import ccall safe "hs_bindgen_576d8a6064774f22" hs_bindgen_576d8a6064774f22_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_plugin_directories@
+hs_bindgen_576d8a6064774f22 :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+hs_bindgen_576d8a6064774f22 =
+  BG.fromFFIType hs_bindgen_576d8a6064774f22_base
+
+{-| __C declaration:__ @heif_get_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 185:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_plugin_directories :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+heif_get_plugin_directories =
+  hs_bindgen_576d8a6064774f22
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_plugin_directories@
+foreign import ccall safe "hs_bindgen_515afb4714206d4e" hs_bindgen_515afb4714206d4e_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_plugin_directories@
+hs_bindgen_515afb4714206d4e ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_515afb4714206d4e =
+  BG.fromFFIType hs_bindgen_515afb4714206d4e_base
+
+{-| __C declaration:__ @heif_free_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 188:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_plugin_directories ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+heif_free_plugin_directories =
+  hs_bindgen_515afb4714206d4e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder_plugin@
+foreign import ccall safe "hs_bindgen_4723fe4fa34139fb" hs_bindgen_4723fe4fa34139fb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder_plugin@
+hs_bindgen_4723fe4fa34139fb ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4723fe4fa34139fb =
+  BG.fromFFIType hs_bindgen_4723fe4fa34139fb_base
+
+{-| __C declaration:__ @heif_register_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder_plugin ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_4723fe4fa34139fb x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_encoder_plugin@
+foreign import ccall safe "hs_bindgen_39215f276df43117" hs_bindgen_39215f276df43117_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_encoder_plugin@
+hs_bindgen_39215f276df43117 ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_39215f276df43117 =
+  BG.fromFFIType hs_bindgen_39215f276df43117_base
+
+{-| __C declaration:__ @heif_register_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 200:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_encoder_plugin ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> IO Heif_error
+heif_register_encoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_39215f276df43117 x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder@
+foreign import ccall safe "hs_bindgen_ba37352b5e42f3a1" hs_bindgen_ba37352b5e42f3a1_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_register_decoder@
+hs_bindgen_ba37352b5e42f3a1 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ba37352b5e42f3a1 =
+  BG.fromFFIType hs_bindgen_ba37352b5e42f3a1_base
+
+{-| __C declaration:__ @heif_register_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 205:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @heif@
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder =
+  \heif0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_ba37352b5e42f3a1 heif0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_colorspace@
+foreign import ccall safe "hs_bindgen_0e1ae4cfeb1ed87e" hs_bindgen_0e1ae4cfeb1ed87e_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_colorspace@
+hs_bindgen_0e1ae4cfeb1ed87e ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+hs_bindgen_0e1ae4cfeb1ed87e =
+  BG.fromFFIType hs_bindgen_0e1ae4cfeb1ed87e_base
+
+{-| __C declaration:__ @heif_image_get_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 150:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_colorspace ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+heif_image_get_colorspace =
+  hs_bindgen_0e1ae4cfeb1ed87e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_chroma_format@
+foreign import ccall safe "hs_bindgen_8c2218fdbacdba5b" hs_bindgen_8c2218fdbacdba5b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_chroma_format@
+hs_bindgen_8c2218fdbacdba5b ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+hs_bindgen_8c2218fdbacdba5b =
+  BG.fromFFIType hs_bindgen_8c2218fdbacdba5b_base
+
+{-| __C declaration:__ @heif_image_get_chroma_format@
+
+    __defined at:__ @libheif\/heif_image.h 154:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_chroma_format ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+heif_image_get_chroma_format =
+  hs_bindgen_8c2218fdbacdba5b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_width@
+foreign import ccall safe "hs_bindgen_1ccc91118173a9e1" hs_bindgen_1ccc91118173a9e1_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_width@
+hs_bindgen_1ccc91118173a9e1 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_1ccc91118173a9e1 =
+  BG.fromFFIType hs_bindgen_1ccc91118173a9e1_base
+
+{-| __C declaration:__ @heif_image_get_width@
+
+    __defined at:__ @libheif\/heif_image.h 164:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_width = hs_bindgen_1ccc91118173a9e1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_height@
+foreign import ccall safe "hs_bindgen_d2e454a8a0e1e648" hs_bindgen_d2e454a8a0e1e648_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_height@
+hs_bindgen_d2e454a8a0e1e648 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_d2e454a8a0e1e648 =
+  BG.fromFFIType hs_bindgen_d2e454a8a0e1e648_base
+
+{-| __C declaration:__ @heif_image_get_height@
+
+    __defined at:__ @libheif\/heif_image.h 174:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_height = hs_bindgen_d2e454a8a0e1e648
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_width@
+foreign import ccall safe "hs_bindgen_b5b1443b20a8511b" hs_bindgen_b5b1443b20a8511b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_width@
+hs_bindgen_b5b1443b20a8511b ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_b5b1443b20a8511b =
+  BG.fromFFIType hs_bindgen_b5b1443b20a8511b_base
+
+{-| __C declaration:__ @heif_image_get_primary_width@
+
+    __defined at:__ @libheif\/heif_image.h 186:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_width =
+  hs_bindgen_b5b1443b20a8511b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_height@
+foreign import ccall safe "hs_bindgen_827b20df504b1a95" hs_bindgen_827b20df504b1a95_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_primary_height@
+hs_bindgen_827b20df504b1a95 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_827b20df504b1a95 =
+  BG.fromFFIType hs_bindgen_827b20df504b1a95_base
+
+{-| __C declaration:__ @heif_image_get_primary_height@
+
+    __defined at:__ @libheif\/heif_image.h 198:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_height =
+  hs_bindgen_827b20df504b1a95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_crop@
+foreign import ccall safe "hs_bindgen_aceb30cee371fd39" hs_bindgen_aceb30cee371fd39_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_crop@
+hs_bindgen_aceb30cee371fd39 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_aceb30cee371fd39 =
+  BG.fromFFIType hs_bindgen_aceb30cee371fd39_base
+
+{-| __C declaration:__ @heif_image_crop@
+
+    __defined at:__ @libheif\/heif_image.h 222:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_crop ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @img@
+  -> BG.CInt
+     -- ^ __C declaration:__ @left@
+  -> BG.CInt
+     -- ^ __C declaration:__ @right@
+  -> BG.CInt
+     -- ^ __C declaration:__ @top@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bottom@
+  -> IO Heif_error
+heif_image_crop =
+  \img0 ->
+    \left1 ->
+      \right2 ->
+        \top3 ->
+          \bottom4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_aceb30cee371fd39 img0 left1 right2 top3 bottom4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extract_area@
+foreign import ccall safe "hs_bindgen_ba79018a9ec3506c" hs_bindgen_ba79018a9ec3506c_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extract_area@
+hs_bindgen_ba79018a9ec3506c ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ba79018a9ec3506c =
+  BG.fromFFIType hs_bindgen_ba79018a9ec3506c_base
+
+{-| __C declaration:__ @heif_image_extract_area@
+
+    __defined at:__ @libheif\/heif_image.h 226:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extract_area ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @x0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @y0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @w@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @h@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_extract_area =
+  \x0 ->
+    \x01 ->
+      \y02 ->
+        \w3 ->
+          \h4 ->
+            \limits5 ->
+              \out_image6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_ba79018a9ec3506c x0 x01 y02 w3 h4 limits5 out_image6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_5fcef9fa747db223" hs_bindgen_5fcef9fa747db223_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel@
+hs_bindgen_5fcef9fa747db223 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_5fcef9fa747db223 =
+  BG.fromFFIType hs_bindgen_5fcef9fa747db223_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image.h 238:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel =
+  hs_bindgen_5fcef9fa747db223
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel_range@
+foreign import ccall safe "hs_bindgen_770d1451f25f23d0" hs_bindgen_770d1451f25f23d0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_bits_per_pixel_range@
+hs_bindgen_770d1451f25f23d0 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_770d1451f25f23d0 =
+  BG.fromFFIType hs_bindgen_770d1451f25f23d0_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel_range@
+
+    __defined at:__ @libheif\/heif_image.h 247:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel_range ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel_range =
+  hs_bindgen_770d1451f25f23d0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_channel@
+foreign import ccall safe "hs_bindgen_ac6d99ace06cf7a9" hs_bindgen_ac6d99ace06cf7a9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_channel@
+hs_bindgen_ac6d99ace06cf7a9 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_ac6d99ace06cf7a9 =
+  BG.fromFFIType hs_bindgen_ac6d99ace06cf7a9_base
+
+{-| __C declaration:__ @heif_image_has_channel@
+
+    __defined at:__ @libheif\/heif_image.h 250:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_channel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_has_channel = hs_bindgen_ac6d99ace06cf7a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly@
+foreign import ccall safe "hs_bindgen_047b40903c05997c" hs_bindgen_047b40903c05997c_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly@
+hs_bindgen_047b40903c05997c ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_047b40903c05997c =
+  BG.fromFFIType hs_bindgen_047b40903c05997c_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly@
+
+    __defined at:__ @libheif\/heif_image.h 258:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly =
+  hs_bindgen_047b40903c05997c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane@
+foreign import ccall safe "hs_bindgen_462f74b6b0e51669" hs_bindgen_462f74b6b0e51669_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane@
+hs_bindgen_462f74b6b0e51669 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_462f74b6b0e51669 =
+  BG.fromFFIType hs_bindgen_462f74b6b0e51669_base
+
+{-| __C declaration:__ @heif_image_get_plane@
+
+    __defined at:__ @libheif\/heif_image.h 264:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane = hs_bindgen_462f74b6b0e51669
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly2@
+foreign import ccall safe "hs_bindgen_c562b49565dea50d" hs_bindgen_c562b49565dea50d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane_readonly2@
+hs_bindgen_c562b49565dea50d ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_c562b49565dea50d =
+  BG.fromFFIType hs_bindgen_c562b49565dea50d_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly2@
+
+    __defined at:__ @libheif\/heif_image.h 273:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly2 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly2 =
+  hs_bindgen_c562b49565dea50d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane2@
+foreign import ccall safe "hs_bindgen_c7baba8551bab583" hs_bindgen_c7baba8551bab583_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_plane2@
+hs_bindgen_c7baba8551bab583 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_c7baba8551bab583 =
+  BG.fromFFIType hs_bindgen_c7baba8551bab583_base
+
+{-| __C declaration:__ @heif_image_get_plane2@
+
+    __defined at:__ @libheif\/heif_image.h 278:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane2 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane2 = hs_bindgen_c7baba8551bab583
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_scale_image@
+foreign import ccall safe "hs_bindgen_356bd5ab0a7e162c" hs_bindgen_356bd5ab0a7e162c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_scale_image@
+hs_bindgen_356bd5ab0a7e162c ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_scaling_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_356bd5ab0a7e162c =
+  BG.fromFFIType hs_bindgen_356bd5ab0a7e162c_base
+
+{-| __C declaration:__ @heif_image_scale_image@
+
+    __defined at:__ @libheif\/heif_image.h 287:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_scale_image ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @input@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @output@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> PtrConst.PtrConst Heif_scaling_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_image_scale_image =
+  \input0 ->
+    \output1 ->
+      \width2 ->
+        \height3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_356bd5ab0a7e162c input0 output1 width2 height3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_to_size_fill_with_zero@
+foreign import ccall safe "hs_bindgen_1f51057f3f3ab220" hs_bindgen_1f51057f3f3ab220_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_to_size_fill_with_zero@
+hs_bindgen_1f51057f3f3ab220 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_1f51057f3f3ab220 =
+  BG.fromFFIType hs_bindgen_1f51057f3f3ab220_base
+
+{-| __C declaration:__ @heif_image_extend_to_size_fill_with_zero@
+
+    __defined at:__ @libheif\/heif_image.h 295:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_to_size_fill_with_zero ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @height@
+  -> IO Heif_error
+heif_image_extend_to_size_fill_with_zero =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_1f51057f3f3ab220 image0 width1 height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_decoding_warnings@
+foreign import ccall safe "hs_bindgen_0f73243f659b5839" hs_bindgen_0f73243f659b5839_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_decoding_warnings@
+hs_bindgen_0f73243f659b5839 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_0f73243f659b5839 =
+  BG.fromFFIType hs_bindgen_0f73243f659b5839_base
+
+{-| __C declaration:__ @heif_image_get_decoding_warnings@
+
+    __defined at:__ @libheif\/heif_image.h 305:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_decoding_warnings ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @first_warning_idx@
+  -> BG.Ptr Heif_error
+     -- ^ __C declaration:__ @out_warnings@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_output_buffer_entries@
+  -> IO BG.CInt
+heif_image_get_decoding_warnings =
+  hs_bindgen_0f73243f659b5839
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_decoding_warning@
+foreign import ccall safe "hs_bindgen_ff4db425910d967f" hs_bindgen_ff4db425910d967f_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_decoding_warning@
+hs_bindgen_ff4db425910d967f ::
+     BG.Ptr Heif_image
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ff4db425910d967f =
+  BG.fromFFIType hs_bindgen_ff4db425910d967f_base
+
+{-| __C declaration:__ @heif_image_add_decoding_warning@
+
+    __defined at:__ @libheif\/heif_image.h 312:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_decoding_warning ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_error
+     -- ^ __C declaration:__ @err@
+  -> IO ()
+heif_image_add_decoding_warning =
+  \image0 ->
+    \err1 ->
+      BG.with err1 (\err2 ->
+                      hs_bindgen_ff4db425910d967f image0 err2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_release@
+foreign import ccall safe "hs_bindgen_40ef7aca6e2177d1" hs_bindgen_40ef7aca6e2177d1_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_release@
+hs_bindgen_40ef7aca6e2177d1 ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+hs_bindgen_40ef7aca6e2177d1 =
+  BG.fromFFIType hs_bindgen_40ef7aca6e2177d1_base
+
+{-| __C declaration:__ @heif_image_release@
+
+    __defined at:__ @libheif\/heif_image.h 317:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_release ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+heif_image_release = hs_bindgen_40ef7aca6e2177d1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_c59879f567050fcc" hs_bindgen_c59879f567050fcc_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_pixel_aspect_ratio@
+hs_bindgen_c59879f567050fcc ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_c59879f567050fcc =
+  BG.fromFFIType hs_bindgen_c59879f567050fcc_base
+
+{-| __C declaration:__ @heif_image_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 320:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_get_pixel_aspect_ratio =
+  hs_bindgen_c59879f567050fcc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_382fdd46c680e29d" hs_bindgen_382fdd46c680e29d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_pixel_aspect_ratio@
+hs_bindgen_382fdd46c680e29d ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_382fdd46c680e29d =
+  BG.fromFFIType hs_bindgen_382fdd46c680e29d_base
+
+{-| __C declaration:__ @heif_image_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 323:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_set_pixel_aspect_ratio =
+  hs_bindgen_382fdd46c680e29d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_d5e4426964217a2b" hs_bindgen_d5e4426964217a2b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_pixel_aspect_ratio@
+hs_bindgen_d5e4426964217a2b ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_d5e4426964217a2b =
+  BG.fromFFIType hs_bindgen_d5e4426964217a2b_base
+
+{-| __C declaration:__ @heif_image_handle_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 326:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_handle_set_pixel_aspect_ratio =
+  hs_bindgen_d5e4426964217a2b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_create@
+foreign import ccall safe "hs_bindgen_048c16976f9d00a6" hs_bindgen_048c16976f9d00a6_base ::
+     BG.Int32
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_create@
+hs_bindgen_048c16976f9d00a6 ::
+     BG.CInt
+  -> BG.CInt
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_048c16976f9d00a6 =
+  BG.fromFFIType hs_bindgen_048c16976f9d00a6_base
+
+{-| __C declaration:__ @heif_image_create@
+
+    __defined at:__ @libheif\/heif_image.h 344:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_create ::
+     BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_create =
+  \width0 ->
+    \height1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \out_image4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_048c16976f9d00a6 width0 height1 colorspace2 chroma3 out_image4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane@
+foreign import ccall safe "hs_bindgen_39098c398bab3049" hs_bindgen_39098c398bab3049_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane@
+hs_bindgen_39098c398bab3049 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_39098c398bab3049 =
+  BG.fromFFIType hs_bindgen_39098c398bab3049_base
+
+{-| __C declaration:__ @heif_image_add_plane@
+
+    __defined at:__ @libheif\/heif_image.h 378:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> IO Heif_error
+heif_image_add_plane =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_39098c398bab3049 image0 channel1 width2 height3 bit_depth4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane_safe@
+foreign import ccall safe "hs_bindgen_b43a95f5d0d97321" hs_bindgen_b43a95f5d0d97321_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_plane_safe@
+hs_bindgen_b43a95f5d0d97321 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b43a95f5d0d97321 =
+  BG.fromFFIType hs_bindgen_b43a95f5d0d97321_base
+
+{-| __C declaration:__ @heif_image_add_plane_safe@
+
+    __defined at:__ @libheif\/heif_image.h 387:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane_safe ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> IO Heif_error
+heif_image_add_plane_safe =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            \limits5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_b43a95f5d0d97321 image0 channel1 width2 height3 bit_depth4 limits5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_premultiplied_alpha@
+foreign import ccall safe "hs_bindgen_66befebbb3cfe08f" hs_bindgen_66befebbb3cfe08f_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_premultiplied_alpha@
+hs_bindgen_66befebbb3cfe08f ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_66befebbb3cfe08f =
+  BG.fromFFIType hs_bindgen_66befebbb3cfe08f_base
+
+{-| __C declaration:__ @heif_image_set_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 394:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @is_premultiplied_alpha@
+  -> IO ()
+heif_image_set_premultiplied_alpha =
+  hs_bindgen_66befebbb3cfe08f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_is_premultiplied_alpha@
+foreign import ccall safe "hs_bindgen_7f39c909f50251bd" hs_bindgen_7f39c909f50251bd_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_is_premultiplied_alpha@
+hs_bindgen_7f39c909f50251bd ::
+     BG.Ptr Heif_image
+  -> IO BG.CInt
+hs_bindgen_7f39c909f50251bd =
+  BG.fromFFIType hs_bindgen_7f39c909f50251bd_base
+
+{-| __C declaration:__ @heif_image_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_is_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO BG.CInt
+heif_image_is_premultiplied_alpha =
+  hs_bindgen_7f39c909f50251bd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_padding_to_size@
+foreign import ccall safe "hs_bindgen_0a9de4fb42d7aef8" hs_bindgen_0a9de4fb42d7aef8_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_extend_padding_to_size@
+hs_bindgen_0a9de4fb42d7aef8 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_0a9de4fb42d7aef8 =
+  BG.fromFFIType hs_bindgen_0a9de4fb42d7aef8_base
+
+{-| __C declaration:__ @heif_image_extend_padding_to_size@
+
+    __defined at:__ @libheif\/heif_image.h 406:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_padding_to_size ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_height@
+  -> IO Heif_error
+heif_image_extend_padding_to_size =
+  \image0 ->
+    \min_physical_width1 ->
+      \min_physical_height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_0a9de4fb42d7aef8 image0 min_physical_width1 min_physical_height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_set_defaults@
+foreign import ccall safe "hs_bindgen_635c898d9653c258" hs_bindgen_635c898d9653c258_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_set_defaults@
+hs_bindgen_635c898d9653c258 ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+hs_bindgen_635c898d9653c258 =
+  BG.fromFFIType hs_bindgen_635c898d9653c258_base
+
+{-| __C declaration:__ @heif_color_conversion_options_set_defaults@
+
+    __defined at:__ @libheif\/heif_color.h 99:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_set_defaults ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+heif_color_conversion_options_set_defaults =
+  hs_bindgen_635c898d9653c258
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_alloc@
+foreign import ccall safe "hs_bindgen_f9767fc846991850" hs_bindgen_f9767fc846991850_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_alloc@
+hs_bindgen_f9767fc846991850 :: IO (BG.Ptr Heif_color_conversion_options_ext)
+hs_bindgen_f9767fc846991850 =
+  BG.fromFFIType hs_bindgen_f9767fc846991850_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 102:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_alloc :: IO (BG.Ptr Heif_color_conversion_options_ext)
+heif_color_conversion_options_ext_alloc =
+  hs_bindgen_f9767fc846991850
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_copy@
+foreign import ccall safe "hs_bindgen_e89e40cb42b3dbf6" hs_bindgen_e89e40cb42b3dbf6_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_copy@
+hs_bindgen_e89e40cb42b3dbf6 ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_e89e40cb42b3dbf6 =
+  BG.fromFFIType hs_bindgen_e89e40cb42b3dbf6_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_copy@
+
+    __defined at:__ @libheif\/heif_color.h 105:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_copy ::
+     BG.Ptr Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_color_conversion_options_ext_copy =
+  hs_bindgen_e89e40cb42b3dbf6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_free@
+foreign import ccall safe "hs_bindgen_015954e3f538afdf" hs_bindgen_015954e3f538afdf_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_color_conversion_options_ext_free@
+hs_bindgen_015954e3f538afdf ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_015954e3f538afdf =
+  BG.fromFFIType hs_bindgen_015954e3f538afdf_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_free@
+
+    __defined at:__ @libheif\/heif_color.h 109:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_free ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+heif_color_conversion_options_ext_free =
+  hs_bindgen_015954e3f538afdf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_color_profile_type@
+foreign import ccall safe "hs_bindgen_c2e2151a49511790" hs_bindgen_c2e2151a49511790_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_color_profile_type@
+hs_bindgen_c2e2151a49511790 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_color_profile_type
+hs_bindgen_c2e2151a49511790 =
+  BG.fromFFIType hs_bindgen_c2e2151a49511790_base
+
+{-| __C declaration:__ @heif_image_handle_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 129:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_color_profile_type
+heif_image_handle_get_color_profile_type =
+  hs_bindgen_c2e2151a49511790
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile_size@
+foreign import ccall safe "hs_bindgen_f3b5e52cf4c98431" hs_bindgen_f3b5e52cf4c98431_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile_size@
+hs_bindgen_f3b5e52cf4c98431 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_f3b5e52cf4c98431 =
+  BG.fromFFIType hs_bindgen_f3b5e52cf4c98431_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 132:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_raw_color_profile_size =
+  hs_bindgen_f3b5e52cf4c98431
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile@
+foreign import ccall safe "hs_bindgen_70185cdfc94f6180" hs_bindgen_70185cdfc94f6180_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_raw_color_profile@
+hs_bindgen_70185cdfc94f6180 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_70185cdfc94f6180 =
+  BG.fromFFIType hs_bindgen_70185cdfc94f6180_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 136:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_raw_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_70185cdfc94f6180 handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_color_primaries@
+foreign import ccall safe "hs_bindgen_fd1b0dc517553ea4" hs_bindgen_fd1b0dc517553ea4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_color_primaries@
+hs_bindgen_fd1b0dc517553ea4 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_fd1b0dc517553ea4 =
+  BG.fromFFIType hs_bindgen_fd1b0dc517553ea4_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 215:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_color_primaries ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @cp@
+  -> IO Heif_error
+heif_nclx_color_profile_set_color_primaries =
+  \nclx0 ->
+    \cp1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_fd1b0dc517553ea4 nclx0 cp1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_transfer_characteristics@
+foreign import ccall safe "hs_bindgen_4cd780e465edf8f1" hs_bindgen_4cd780e465edf8f1_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_transfer_characteristics@
+hs_bindgen_4cd780e465edf8f1 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4cd780e465edf8f1 =
+  BG.fromFFIType hs_bindgen_4cd780e465edf8f1_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_transfer_characteristics ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @transfer_characteristics@
+  -> IO Heif_error
+heif_nclx_color_profile_set_transfer_characteristics =
+  \nclx0 ->
+    \transfer_characteristics1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4cd780e465edf8f1 nclx0 transfer_characteristics1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_matrix_coefficients@
+foreign import ccall safe "hs_bindgen_4c2b93b4d0d31039" hs_bindgen_4c2b93b4d0d31039_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_set_matrix_coefficients@
+hs_bindgen_4c2b93b4d0d31039 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4c2b93b4d0d31039 =
+  BG.fromFFIType hs_bindgen_4c2b93b4d0d31039_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 221:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_matrix_coefficients ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @matrix_coefficients@
+  -> IO Heif_error
+heif_nclx_color_profile_set_matrix_coefficients =
+  \nclx0 ->
+    \matrix_coefficients1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4c2b93b4d0d31039 nclx0 matrix_coefficients1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nclx_color_profile@
+foreign import ccall safe "hs_bindgen_4878761a3eacdfd6" hs_bindgen_4878761a3eacdfd6_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nclx_color_profile@
+hs_bindgen_4878761a3eacdfd6 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4878761a3eacdfd6 =
+  BG.fromFFIType hs_bindgen_4878761a3eacdfd6_base
+
+{-| __C declaration:__ @heif_image_handle_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 227:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_nclx_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4878761a3eacdfd6 handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_alloc@
+foreign import ccall safe "hs_bindgen_252b9611425ba79d" hs_bindgen_252b9611425ba79d_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_alloc@
+hs_bindgen_252b9611425ba79d :: IO (BG.Ptr Heif_color_profile_nclx)
+hs_bindgen_252b9611425ba79d =
+  BG.fromFFIType hs_bindgen_252b9611425ba79d_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 234:26@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_alloc :: IO (BG.Ptr Heif_color_profile_nclx)
+heif_nclx_color_profile_alloc =
+  hs_bindgen_252b9611425ba79d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_free@
+foreign import ccall safe "hs_bindgen_baafd267dd3a7eda" hs_bindgen_baafd267dd3a7eda_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_nclx_color_profile_free@
+hs_bindgen_baafd267dd3a7eda ::
+     BG.Ptr Heif_color_profile_nclx
+  -> IO ()
+hs_bindgen_baafd267dd3a7eda =
+  BG.fromFFIType hs_bindgen_baafd267dd3a7eda_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_free@
+
+    __defined at:__ @libheif\/heif_color.h 237:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_free ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx_profile@
+  -> IO ()
+heif_nclx_color_profile_free =
+  hs_bindgen_baafd267dd3a7eda
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_color_profile_type@
+foreign import ccall safe "hs_bindgen_451f04ca40155e84" hs_bindgen_451f04ca40155e84_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_color_profile_type@
+hs_bindgen_451f04ca40155e84 ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_color_profile_type
+hs_bindgen_451f04ca40155e84 =
+  BG.fromFFIType hs_bindgen_451f04ca40155e84_base
+
+{-| __C declaration:__ @heif_image_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 243:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_color_profile_type
+heif_image_get_color_profile_type =
+  hs_bindgen_451f04ca40155e84
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile_size@
+foreign import ccall safe "hs_bindgen_6a45102328f17806" hs_bindgen_6a45102328f17806_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile_size@
+hs_bindgen_6a45102328f17806 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_6a45102328f17806 =
+  BG.fromFFIType hs_bindgen_6a45102328f17806_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 247:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_get_raw_color_profile_size =
+  hs_bindgen_6a45102328f17806
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile@
+foreign import ccall safe "hs_bindgen_ea1a521369743d6e" hs_bindgen_ea1a521369743d6e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_raw_color_profile@
+hs_bindgen_ea1a521369743d6e ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ea1a521369743d6e =
+  BG.fromFFIType hs_bindgen_ea1a521369743d6e_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_raw_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_ea1a521369743d6e image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nclx_color_profile@
+foreign import ccall safe "hs_bindgen_4a81755ffaafdd5e" hs_bindgen_4a81755ffaafdd5e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nclx_color_profile@
+hs_bindgen_4a81755ffaafdd5e ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4a81755ffaafdd5e =
+  BG.fromFFIType hs_bindgen_4a81755ffaafdd5e_base
+
+{-| __C declaration:__ @heif_image_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_nclx_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4a81755ffaafdd5e image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_raw_color_profile@
+foreign import ccall safe "hs_bindgen_8b84f0de01d3fc38" hs_bindgen_8b84f0de01d3fc38_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_raw_color_profile@
+hs_bindgen_8b84f0de01d3fc38 ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8b84f0de01d3fc38 =
+  BG.fromFFIType hs_bindgen_8b84f0de01d3fc38_base
+
+{-| __C declaration:__ @heif_image_set_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 262:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_raw_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @profile_type_fourcc_string@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @profile_data@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @profile_size@
+  -> IO Heif_error
+heif_image_set_raw_color_profile =
+  \image0 ->
+    \profile_type_fourcc_string1 ->
+      \profile_data2 ->
+        \profile_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_8b84f0de01d3fc38 image0 profile_type_fourcc_string1 profile_data2 profile_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nclx_color_profile@
+foreign import ccall safe "hs_bindgen_290eaac614fe5c21" hs_bindgen_290eaac614fe5c21_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nclx_color_profile@
+hs_bindgen_290eaac614fe5c21 ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_290eaac614fe5c21 =
+  BG.fromFFIType hs_bindgen_290eaac614fe5c21_base
+
+{-| __C declaration:__ @heif_image_set_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 268:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nclx_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+     -- ^ __C declaration:__ @color_profile@
+  -> IO Heif_error
+heif_image_set_nclx_color_profile =
+  \image0 ->
+    \color_profile1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_290eaac614fe5c21 image0 color_profile1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_content_light_level@
+foreign import ccall safe "hs_bindgen_d9106e024a66d6c7" hs_bindgen_d9106e024a66d6c7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_content_light_level@
+hs_bindgen_d9106e024a66d6c7 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_d9106e024a66d6c7 =
+  BG.fromFFIType hs_bindgen_d9106e024a66d6c7_base
+
+{-| __C declaration:__ @heif_image_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 301:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_content_light_level =
+  hs_bindgen_d9106e024a66d6c7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_content_light_level@
+foreign import ccall safe "hs_bindgen_004c713c5bed589a" hs_bindgen_004c713c5bed589a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_content_light_level@
+hs_bindgen_004c713c5bed589a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_004c713c5bed589a =
+  BG.fromFFIType hs_bindgen_004c713c5bed589a_base
+
+{-| __C declaration:__ @heif_image_handle_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 304:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_content_light_level =
+  hs_bindgen_004c713c5bed589a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_content_light_level@
+foreign import ccall safe "hs_bindgen_224bdf9ae9bc86e4" hs_bindgen_224bdf9ae9bc86e4_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_content_light_level@
+hs_bindgen_224bdf9ae9bc86e4 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+  -> IO ()
+hs_bindgen_224bdf9ae9bc86e4 =
+  BG.fromFFIType hs_bindgen_224bdf9ae9bc86e4_base
+
+{-| __C declaration:__ @heif_image_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 308:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_content_light_level =
+  hs_bindgen_224bdf9ae9bc86e4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_content_light_level@
+foreign import ccall safe "hs_bindgen_0573bf5680dead95" hs_bindgen_0573bf5680dead95_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_content_light_level@
+hs_bindgen_0573bf5680dead95 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+  -> IO BG.CInt
+hs_bindgen_0573bf5680dead95 =
+  BG.fromFFIType hs_bindgen_0573bf5680dead95_base
+
+{-| __C declaration:__ @heif_image_handle_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 312:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_content_light_level =
+  hs_bindgen_0573bf5680dead95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_content_light_level@
+foreign import ccall safe "hs_bindgen_61eb469d896a68ed" hs_bindgen_61eb469d896a68ed_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_content_light_level@
+hs_bindgen_61eb469d896a68ed ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_61eb469d896a68ed =
+  BG.fromFFIType hs_bindgen_61eb469d896a68ed_base
+
+{-| __C declaration:__ @heif_image_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 315:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_content_light_level =
+  hs_bindgen_61eb469d896a68ed
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_content_light_level@
+foreign import ccall safe "hs_bindgen_b94eaa9d4f03b208" hs_bindgen_b94eaa9d4f03b208_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_content_light_level@
+hs_bindgen_b94eaa9d4f03b208 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_b94eaa9d4f03b208 =
+  BG.fromFFIType hs_bindgen_b94eaa9d4f03b208_base
+
+{-| __C declaration:__ @heif_image_handle_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 318:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_content_light_level =
+  hs_bindgen_b94eaa9d4f03b208
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_65fda22aec99af16" hs_bindgen_65fda22aec99af16_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_mastering_display_colour_volume@
+hs_bindgen_65fda22aec99af16 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_65fda22aec99af16 =
+  BG.fromFFIType hs_bindgen_65fda22aec99af16_base
+
+{-| __C declaration:__ @heif_image_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_mastering_display_colour_volume =
+  hs_bindgen_65fda22aec99af16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_ba412b5c11d4ce2c" hs_bindgen_ba412b5c11d4ce2c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_mastering_display_colour_volume@
+hs_bindgen_ba412b5c11d4ce2c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_ba412b5c11d4ce2c =
+  BG.fromFFIType hs_bindgen_ba412b5c11d4ce2c_base
+
+{-| __C declaration:__ @heif_image_handle_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_mastering_display_colour_volume =
+  hs_bindgen_ba412b5c11d4ce2c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_40e6f048c71c0839" hs_bindgen_40e6f048c71c0839_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_mastering_display_colour_volume@
+hs_bindgen_40e6f048c71c0839 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_40e6f048c71c0839 =
+  BG.fromFFIType hs_bindgen_40e6f048c71c0839_base
+
+{-| __C declaration:__ @heif_image_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 404:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_mastering_display_colour_volume =
+  hs_bindgen_40e6f048c71c0839
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_f5f710dd952f38b2" hs_bindgen_f5f710dd952f38b2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_mastering_display_colour_volume@
+hs_bindgen_f5f710dd952f38b2 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO BG.CInt
+hs_bindgen_f5f710dd952f38b2 =
+  BG.fromFFIType hs_bindgen_f5f710dd952f38b2_base
+
+{-| __C declaration:__ @heif_image_handle_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 408:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_mastering_display_colour_volume =
+  hs_bindgen_f5f710dd952f38b2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_7c7394e5ab9a2522" hs_bindgen_7c7394e5ab9a2522_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_mastering_display_colour_volume@
+hs_bindgen_7c7394e5ab9a2522 ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_7c7394e5ab9a2522 =
+  BG.fromFFIType hs_bindgen_7c7394e5ab9a2522_base
+
+{-| __C declaration:__ @heif_image_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 411:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_mastering_display_colour_volume =
+  hs_bindgen_7c7394e5ab9a2522
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_mastering_display_colour_volume@
+foreign import ccall safe "hs_bindgen_e71af6fb39f6c6a7" hs_bindgen_e71af6fb39f6c6a7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_mastering_display_colour_volume@
+hs_bindgen_e71af6fb39f6c6a7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_e71af6fb39f6c6a7 =
+  BG.fromFFIType hs_bindgen_e71af6fb39f6c6a7_base
+
+{-| __C declaration:__ @heif_image_handle_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 414:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_mastering_display_colour_volume =
+  hs_bindgen_e71af6fb39f6c6a7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_5aefb28b52c74a49" hs_bindgen_5aefb28b52c74a49_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_ambient_viewing_environment@
+hs_bindgen_5aefb28b52c74a49 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_5aefb28b52c74a49 =
+  BG.fromFFIType hs_bindgen_5aefb28b52c74a49_base
+
+{-| __C declaration:__ @heif_image_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 420:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_ambient_viewing_environment =
+  hs_bindgen_5aefb28b52c74a49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_fb72753dff464187" hs_bindgen_fb72753dff464187_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_ambient_viewing_environment@
+hs_bindgen_fb72753dff464187 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_fb72753dff464187 =
+  BG.fromFFIType hs_bindgen_fb72753dff464187_base
+
+{-| __C declaration:__ @heif_image_handle_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 423:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_ambient_viewing_environment =
+  hs_bindgen_fb72753dff464187
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_e4865cd1be357ee7" hs_bindgen_e4865cd1be357ee7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_ambient_viewing_environment@
+hs_bindgen_e4865cd1be357ee7 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_e4865cd1be357ee7 =
+  BG.fromFFIType hs_bindgen_e4865cd1be357ee7_base
+
+{-| __C declaration:__ @heif_image_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 427:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_get_ambient_viewing_environment =
+  hs_bindgen_e4865cd1be357ee7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_9975a4f39370fa33" hs_bindgen_9975a4f39370fa33_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ambient_viewing_environment@
+hs_bindgen_9975a4f39370fa33 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_9975a4f39370fa33 =
+  BG.fromFFIType hs_bindgen_9975a4f39370fa33_base
+
+{-| __C declaration:__ @heif_image_handle_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 431:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_ambient_viewing_environment =
+  hs_bindgen_9975a4f39370fa33
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_be117bf48bd413ce" hs_bindgen_be117bf48bd413ce_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_ambient_viewing_environment@
+hs_bindgen_be117bf48bd413ce ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_be117bf48bd413ce =
+  BG.fromFFIType hs_bindgen_be117bf48bd413ce_base
+
+{-| __C declaration:__ @heif_image_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 434:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_ambient_viewing_environment =
+  hs_bindgen_be117bf48bd413ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_ambient_viewing_environment@
+foreign import ccall safe "hs_bindgen_b6a2b9efd97046de" hs_bindgen_b6a2b9efd97046de_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_ambient_viewing_environment@
+hs_bindgen_b6a2b9efd97046de ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_b6a2b9efd97046de =
+  BG.fromFFIType hs_bindgen_b6a2b9efd97046de_base
+
+{-| __C declaration:__ @heif_image_handle_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 437:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_ambient_viewing_environment =
+  hs_bindgen_b6a2b9efd97046de
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_0392b2a2a62a17b9" hs_bindgen_0392b2a2a62a17b9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_has_nominal_diffuse_white_luminance@
+hs_bindgen_0392b2a2a62a17b9 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_0392b2a2a62a17b9 =
+  BG.fromFFIType hs_bindgen_0392b2a2a62a17b9_base
+
+{-| __C declaration:__ @heif_image_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 450:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_nominal_diffuse_white_luminance =
+  hs_bindgen_0392b2a2a62a17b9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_2cc0bd424cc13ef0" hs_bindgen_2cc0bd424cc13ef0_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_nominal_diffuse_white_luminance@
+hs_bindgen_2cc0bd424cc13ef0 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_2cc0bd424cc13ef0 =
+  BG.fromFFIType hs_bindgen_2cc0bd424cc13ef0_base
+
+{-| __C declaration:__ @heif_image_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 453:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_nominal_diffuse_white_luminance =
+  hs_bindgen_2cc0bd424cc13ef0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_d822f8181b9f461f" hs_bindgen_d822f8181b9f461f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_nominal_diffuse_white_luminance@
+hs_bindgen_d822f8181b9f461f ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_d822f8181b9f461f =
+  BG.fromFFIType hs_bindgen_d822f8181b9f461f_base
+
+{-| __C declaration:__ @heif_image_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 456:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_set_nominal_diffuse_white_luminance =
+  hs_bindgen_d822f8181b9f461f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_75f707df4737c64c" hs_bindgen_75f707df4737c64c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_nominal_diffuse_white_luminance@
+hs_bindgen_75f707df4737c64c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_75f707df4737c64c =
+  BG.fromFFIType hs_bindgen_75f707df4737c64c_base
+
+{-| __C declaration:__ @heif_image_handle_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 459:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_nominal_diffuse_white_luminance =
+  hs_bindgen_75f707df4737c64c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_88b825fccd56f83a" hs_bindgen_88b825fccd56f83a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_nominal_diffuse_white_luminance@
+hs_bindgen_88b825fccd56f83a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_88b825fccd56f83a =
+  BG.fromFFIType hs_bindgen_88b825fccd56f83a_base
+
+{-| __C declaration:__ @heif_image_handle_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 462:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_nominal_diffuse_white_luminance =
+  hs_bindgen_88b825fccd56f83a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_nominal_diffuse_white_luminance@
+foreign import ccall safe "hs_bindgen_d54b499790eb4475" hs_bindgen_d54b499790eb4475_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_nominal_diffuse_white_luminance@
+hs_bindgen_d54b499790eb4475 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_d54b499790eb4475 =
+  BG.fromFFIType hs_bindgen_d54b499790eb4475_base
+
+{-| __C declaration:__ @heif_image_handle_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 465:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_handle_set_nominal_diffuse_white_luminance =
+  hs_bindgen_d54b499790eb4475
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_mastering_display_colour_volume_decode@
+foreign import ccall safe "hs_bindgen_7af8bd15dda9d8da" hs_bindgen_7af8bd15dda9d8da_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_mastering_display_colour_volume_decode@
+hs_bindgen_7af8bd15dda9d8da ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7af8bd15dda9d8da =
+  BG.fromFFIType hs_bindgen_7af8bd15dda9d8da_base
+
+{-| __C declaration:__ @heif_mastering_display_colour_volume_decode@
+
+    __defined at:__ @libheif\/heif_color.h 472:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_mastering_display_colour_volume_decode ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO Heif_error
+heif_mastering_display_colour_volume_decode =
+  \in'0 ->
+    \out1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_7af8bd15dda9d8da in'0 out1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_main_brand@
+foreign import ccall safe "hs_bindgen_eb070136a1fc7d04" hs_bindgen_eb070136a1fc7d04_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_main_brand@
+hs_bindgen_eb070136a1fc7d04 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_eb070136a1fc7d04 =
+  BG.fromFFIType hs_bindgen_eb070136a1fc7d04_base
+
+{-| __C declaration:__ @heif_read_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 269:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_main_brand = hs_bindgen_eb070136a1fc7d04
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_minor_version_brand@
+foreign import ccall safe "hs_bindgen_99628e0c9a83fd4a" hs_bindgen_99628e0c9a83fd4a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_read_minor_version_brand@
+hs_bindgen_99628e0c9a83fd4a ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_99628e0c9a83fd4a =
+  BG.fromFFIType hs_bindgen_99628e0c9a83fd4a_base
+
+{-| __C declaration:__ @heif_read_minor_version_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 273:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_minor_version_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_minor_version_brand =
+  hs_bindgen_99628e0c9a83fd4a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_fourcc_to_brand@
+foreign import ccall safe "hs_bindgen_8ddb7de5c3530060" hs_bindgen_8ddb7de5c3530060_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_fourcc_to_brand@
+hs_bindgen_8ddb7de5c3530060 ::
+     PtrConst.PtrConst BG.CChar
+  -> IO Heif_brand2
+hs_bindgen_8ddb7de5c3530060 =
+  BG.fromFFIType hs_bindgen_8ddb7de5c3530060_base
+
+{-| __C declaration:__ @heif_fourcc_to_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 277:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_fourcc_to_brand ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO Heif_brand2
+heif_fourcc_to_brand = hs_bindgen_8ddb7de5c3530060
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_brand_to_fourcc@
+foreign import ccall safe "hs_bindgen_9ccdf2cb99660b08" hs_bindgen_9ccdf2cb99660b08_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_brand_to_fourcc@
+hs_bindgen_9ccdf2cb99660b08 ::
+     Heif_brand2
+  -> BG.Ptr BG.CChar
+  -> IO ()
+hs_bindgen_9ccdf2cb99660b08 =
+  BG.fromFFIType hs_bindgen_9ccdf2cb99660b08_base
+
+{-| __C declaration:__ @heif_brand_to_fourcc@
+
+    __defined at:__ @libheif\/heif_brands.h 281:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_brand_to_fourcc ::
+     Heif_brand2
+     -- ^ __C declaration:__ @brand@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @out_fourcc@
+  -> IO ()
+heif_brand_to_fourcc = hs_bindgen_9ccdf2cb99660b08
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_brand@
+foreign import ccall safe "hs_bindgen_80dc19fc26906086" hs_bindgen_80dc19fc26906086_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_brand@
+hs_bindgen_80dc19fc26906086 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_80dc19fc26906086 =
+  BG.fromFFIType hs_bindgen_80dc19fc26906086_base
+
+{-| __C declaration:__ @heif_has_compatible_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 289:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO BG.CInt
+heif_has_compatible_brand =
+  hs_bindgen_80dc19fc26906086
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_list_compatible_brands@
+foreign import ccall safe "hs_bindgen_97aa636c233d899b" hs_bindgen_97aa636c233d899b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_list_compatible_brands@
+hs_bindgen_97aa636c233d899b ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_97aa636c233d899b =
+  BG.fromFFIType hs_bindgen_97aa636c233d899b_base
+
+{-| __C declaration:__ @heif_list_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_list_compatible_brands ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+     -- ^ __C declaration:__ @out_brands@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_size@
+  -> IO Heif_error
+heif_list_compatible_brands =
+  \data'0 ->
+    \len1 ->
+      \out_brands2 ->
+        \out_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_97aa636c233d899b data'0 len1 out_brands2 out_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_list_of_compatible_brands@
+foreign import ccall safe "hs_bindgen_9bb6fcadffe04582" hs_bindgen_9bb6fcadffe04582_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_free_list_of_compatible_brands@
+hs_bindgen_9bb6fcadffe04582 ::
+     BG.Ptr Heif_brand2
+  -> IO ()
+hs_bindgen_9bb6fcadffe04582 =
+  BG.fromFFIType hs_bindgen_9bb6fcadffe04582_base
+
+{-| __C declaration:__ @heif_free_list_of_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 297:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_list_of_compatible_brands ::
+     BG.Ptr Heif_brand2
+     -- ^ __C declaration:__ @brands_list@
+  -> IO ()
+heif_free_list_of_compatible_brands =
+  hs_bindgen_9bb6fcadffe04582
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_file_mime_type@
+foreign import ccall safe "hs_bindgen_db3e04ae1bcbe4c0" hs_bindgen_db3e04ae1bcbe4c0_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_file_mime_type@
+hs_bindgen_db3e04ae1bcbe4c0 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_db3e04ae1bcbe4c0 =
+  BG.fromFFIType hs_bindgen_db3e04ae1bcbe4c0_base
+
+{-| __C declaration:__ @heif_get_file_mime_type@
+
+    __defined at:__ @libheif\/heif_brands.h 318:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_file_mime_type ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_get_file_mime_type = hs_bindgen_db3e04ae1bcbe4c0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_filetype@
+foreign import ccall safe "hs_bindgen_ab7eedc4f1bb8c0b" hs_bindgen_ab7eedc4f1bb8c0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_filetype@
+hs_bindgen_ab7eedc4f1bb8c0b ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_filetype_result
+hs_bindgen_ab7eedc4f1bb8c0b =
+  BG.fromFFIType hs_bindgen_ab7eedc4f1bb8c0b_base
+
+{-| __C declaration:__ @heif_check_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 333:27@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_filetype_result
+heif_check_filetype = hs_bindgen_ab7eedc4f1bb8c0b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_filetype@
+foreign import ccall safe "hs_bindgen_8913d7bc32d127f4" hs_bindgen_8913d7bc32d127f4_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_has_compatible_filetype@
+hs_bindgen_8913d7bc32d127f4 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8913d7bc32d127f4 =
+  BG.fromFFIType hs_bindgen_8913d7bc32d127f4_base
+
+{-| __C declaration:__ @heif_has_compatible_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 345:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_error
+heif_has_compatible_filetype =
+  \data'0 ->
+    \len1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8913d7bc32d127f4 data'0 len1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_jpeg_filetype@
+foreign import ccall safe "hs_bindgen_d83270b51d72cc95" hs_bindgen_d83270b51d72cc95_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_check_jpeg_filetype@
+hs_bindgen_d83270b51d72cc95 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_d83270b51d72cc95 =
+  BG.fromFFIType hs_bindgen_d83270b51d72cc95_base
+
+{-| __C declaration:__ @heif_check_jpeg_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 348:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_jpeg_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO BG.CInt
+heif_check_jpeg_filetype =
+  hs_bindgen_d83270b51d72cc95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_main_brand@
+foreign import ccall safe "hs_bindgen_bae440faea94f3ea" hs_bindgen_bae440faea94f3ea_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_main_brand@
+hs_bindgen_bae440faea94f3ea ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand
+hs_bindgen_bae440faea94f3ea =
+  BG.fromFFIType hs_bindgen_bae440faea94f3ea_base
+
+{-| __C declaration:__ @heif_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 379:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand
+heif_main_brand = hs_bindgen_bae440faea94f3ea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_metadata_compression_method_supported@
+foreign import ccall safe "hs_bindgen_77b745f8ec6e141f" hs_bindgen_77b745f8ec6e141f_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_metadata_compression_method_supported@
+hs_bindgen_77b745f8ec6e141f ::
+     Heif_metadata_compression
+  -> IO BG.CInt
+hs_bindgen_77b745f8ec6e141f =
+  BG.fromFFIType hs_bindgen_77b745f8ec6e141f_base
+
+{-| __C declaration:__ @heif_metadata_compression_method_supported@
+
+    __defined at:__ @libheif\/heif_metadata.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_metadata_compression_method_supported ::
+     Heif_metadata_compression
+     -- ^ __C declaration:__ @method@
+  -> IO BG.CInt
+heif_metadata_compression_method_supported =
+  hs_bindgen_77b745f8ec6e141f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_metadata_blocks@
+foreign import ccall safe "hs_bindgen_221fe3032a7fe8dd" hs_bindgen_221fe3032a7fe8dd_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_metadata_blocks@
+hs_bindgen_221fe3032a7fe8dd ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_221fe3032a7fe8dd =
+  BG.fromFFIType hs_bindgen_221fe3032a7fe8dd_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_metadata_blocks@
+
+    __defined at:__ @libheif\/heif_metadata.h 49:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_metadata_blocks ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_metadata_blocks =
+  hs_bindgen_221fe3032a7fe8dd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_metadata_block_IDs@
+foreign import ccall safe "hs_bindgen_0789072dbb9a1da7" hs_bindgen_0789072dbb9a1da7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_metadata_block_IDs@
+hs_bindgen_0789072dbb9a1da7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_0789072dbb9a1da7 =
+  BG.fromFFIType hs_bindgen_0789072dbb9a1da7_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_metadata_block_IDs@
+
+    __defined at:__ @libheif\/heif_metadata.h 55:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_metadata_block_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_metadata_block_IDs =
+  hs_bindgen_0789072dbb9a1da7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_type@
+foreign import ccall safe "hs_bindgen_a597fdc86acc8f1b" hs_bindgen_a597fdc86acc8f1b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_type@
+hs_bindgen_a597fdc86acc8f1b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_a597fdc86acc8f1b =
+  BG.fromFFIType hs_bindgen_a597fdc86acc8f1b_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 64:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_type =
+  hs_bindgen_a597fdc86acc8f1b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_content_type@
+foreign import ccall safe "hs_bindgen_e419666dded9a0a4" hs_bindgen_e419666dded9a0a4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_content_type@
+hs_bindgen_e419666dded9a0a4 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_e419666dded9a0a4 =
+  BG.fromFFIType hs_bindgen_e419666dded9a0a4_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_content_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 70:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_content_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_content_type =
+  hs_bindgen_e419666dded9a0a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_size@
+foreign import ccall safe "hs_bindgen_c5dbe28d404f70c2" hs_bindgen_c5dbe28d404f70c2_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_size@
+hs_bindgen_c5dbe28d404f70c2 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_c5dbe28d404f70c2 =
+  BG.fromFFIType hs_bindgen_c5dbe28d404f70c2_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_size@
+
+    __defined at:__ @libheif\/heif_metadata.h 75:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_metadata_size =
+  hs_bindgen_c5dbe28d404f70c2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata@
+foreign import ccall safe "hs_bindgen_40f28b061d8968ee" hs_bindgen_40f28b061d8968ee_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata@
+hs_bindgen_40f28b061d8968ee ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_40f28b061d8968ee =
+  BG.fromFFIType hs_bindgen_40f28b061d8968ee_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 83:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_metadata =
+  \handle0 ->
+    \metadata_id1 ->
+      \out_data2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_40f28b061d8968ee handle0 metadata_id1 out_data2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_item_uri_type@
+foreign import ccall safe "hs_bindgen_5add5de233105e0a" hs_bindgen_5add5de233105e0a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_metadata_item_uri_type@
+hs_bindgen_5add5de233105e0a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_5add5de233105e0a =
+  BG.fromFFIType hs_bindgen_5add5de233105e0a_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_item_uri_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 89:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_item_uri_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_item_uri_type =
+  hs_bindgen_5add5de233105e0a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_exif_metadata@
+foreign import ccall safe "hs_bindgen_50f28b858c52d38b" hs_bindgen_50f28b858c52d38b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_exif_metadata@
+hs_bindgen_50f28b858c52d38b ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_50f28b858c52d38b =
+  BG.fromFFIType hs_bindgen_50f28b858c52d38b_base
+
+{-| __C declaration:__ @heif_context_add_exif_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 96:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_exif_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_exif_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_50f28b858c52d38b x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata@
+foreign import ccall safe "hs_bindgen_5e1f813465bb1fe7" hs_bindgen_5e1f813465bb1fe7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata@
+hs_bindgen_5e1f813465bb1fe7 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5e1f813465bb1fe7 =
+  BG.fromFFIType hs_bindgen_5e1f813465bb1fe7_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_XMP_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_5e1f813465bb1fe7 x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata2@
+foreign import ccall safe "hs_bindgen_a4bb5759aaf233ed" hs_bindgen_a4bb5759aaf233ed_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_XMP_metadata2@
+hs_bindgen_a4bb5759aaf233ed ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> Heif_metadata_compression
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_a4bb5759aaf233ed =
+  BG.fromFFIType hs_bindgen_a4bb5759aaf233ed_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata2@
+
+    __defined at:__ @libheif\/heif_metadata.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> Heif_metadata_compression
+     -- ^ __C declaration:__ @compression@
+  -> IO Heif_error
+heif_context_add_XMP_metadata2 =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \compression4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_a4bb5759aaf233ed x0 image_handle1 data'2 size3 compression4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_metadata@
+foreign import ccall safe "hs_bindgen_a112ed25576e1ead" hs_bindgen_a112ed25576e1ead_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_metadata@
+hs_bindgen_a112ed25576e1ead ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_a112ed25576e1ead =
+  BG.fromFFIType hs_bindgen_a112ed25576e1ead_base
+
+{-| __C declaration:__ @heif_context_add_generic_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_type@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_type@
+  -> IO Heif_error
+heif_context_add_generic_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_type4 ->
+            \content_type5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_a112ed25576e1ead ctx0 image_handle1 data'2 size3 item_type4 content_type5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_uri_metadata@
+foreign import ccall safe "hs_bindgen_4228fc144395b704" hs_bindgen_4228fc144395b704_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_generic_uri_metadata@
+hs_bindgen_4228fc144395b704 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4228fc144395b704 =
+  BG.fromFFIType hs_bindgen_4228fc144395b704_base
+
+{-| __C declaration:__ @heif_context_add_generic_uri_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_uri_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_uri_type@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_item_id@
+  -> IO Heif_error
+heif_context_add_generic_uri_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_uri_type4 ->
+            \out_item_id5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_4228fc144395b704 ctx0 image_handle1 data'2 size3 item_uri_type4 out_item_id5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_depth_image@
+foreign import ccall safe "hs_bindgen_c9fd0d64d2e4ff6c" hs_bindgen_c9fd0d64d2e4ff6c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_depth_image@
+hs_bindgen_c9fd0d64d2e4ff6c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_c9fd0d64d2e4ff6c =
+  BG.fromFFIType hs_bindgen_c9fd0d64d2e4ff6c_base
+
+{-| __C declaration:__ @heif_image_handle_has_depth_image@
+
+    __defined at:__ @libheif\/heif_aux_images.h 39:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_depth_image ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_depth_image =
+  hs_bindgen_c9fd0d64d2e4ff6c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_depth_images@
+foreign import ccall safe "hs_bindgen_3168bad746d58363" hs_bindgen_3168bad746d58363_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_depth_images@
+hs_bindgen_3168bad746d58363 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_3168bad746d58363 =
+  BG.fromFFIType hs_bindgen_3168bad746d58363_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_depth_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_depth_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_depth_images =
+  hs_bindgen_3168bad746d58363
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_depth_image_IDs@
+foreign import ccall safe "hs_bindgen_6ce7ff0f64592f3b" hs_bindgen_6ce7ff0f64592f3b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_depth_image_IDs@
+hs_bindgen_6ce7ff0f64592f3b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_6ce7ff0f64592f3b =
+  BG.fromFFIType hs_bindgen_6ce7ff0f64592f3b_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_depth_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 45:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_depth_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_depth_image_IDs =
+  hs_bindgen_6ce7ff0f64592f3b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_handle@
+foreign import ccall safe "hs_bindgen_bca9f64d9bf4b689" hs_bindgen_bca9f64d9bf4b689_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_handle@
+hs_bindgen_bca9f64d9bf4b689 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_bca9f64d9bf4b689 =
+  BG.fromFFIType hs_bindgen_bca9f64d9bf4b689_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_depth_handle@
+  -> IO Heif_error
+heif_image_handle_get_depth_image_handle =
+  \handle0 ->
+    \depth_image_id1 ->
+      \out_depth_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_bca9f64d9bf4b689 handle0 depth_image_id1 out_depth_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_depth_representation_info_free@
+foreign import ccall safe "hs_bindgen_3e42610ddf090daa" hs_bindgen_3e42610ddf090daa_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_depth_representation_info_free@
+hs_bindgen_3e42610ddf090daa ::
+     PtrConst.PtrConst Heif_depth_representation_info
+  -> IO ()
+hs_bindgen_3e42610ddf090daa =
+  BG.fromFFIType hs_bindgen_3e42610ddf090daa_base
+
+{-| __C declaration:__ @heif_depth_representation_info_free@
+
+    __defined at:__ @libheif\/heif_aux_images.h 87:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_depth_representation_info_free ::
+     PtrConst.PtrConst Heif_depth_representation_info
+     -- ^ __C declaration:__ @info@
+  -> IO ()
+heif_depth_representation_info_free =
+  hs_bindgen_3e42610ddf090daa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_representation_info@
+foreign import ccall safe "hs_bindgen_be71395884eb3a2e" hs_bindgen_be71395884eb3a2e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_depth_image_representation_info@
+hs_bindgen_be71395884eb3a2e ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+  -> IO BG.CInt
+hs_bindgen_be71395884eb3a2e =
+  BG.fromFFIType hs_bindgen_be71395884eb3a2e_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 95:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_representation_info ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_depth_image_representation_info =
+  hs_bindgen_be71395884eb3a2e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_thumbnails@
+foreign import ccall safe "hs_bindgen_789c72581f93b4f7" hs_bindgen_789c72581f93b4f7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_thumbnails@
+hs_bindgen_789c72581f93b4f7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_789c72581f93b4f7 =
+  BG.fromFFIType hs_bindgen_789c72581f93b4f7_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_thumbnails@
+
+    __defined at:__ @libheif\/heif_aux_images.h 105:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_thumbnails ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_thumbnails =
+  hs_bindgen_789c72581f93b4f7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_thumbnail_IDs@
+foreign import ccall safe "hs_bindgen_3f158a04db84b93c" hs_bindgen_3f158a04db84b93c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_thumbnail_IDs@
+hs_bindgen_3f158a04db84b93c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_3f158a04db84b93c =
+  BG.fromFFIType hs_bindgen_3f158a04db84b93c_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_thumbnail_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 108:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_thumbnail_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_thumbnail_IDs =
+  hs_bindgen_3f158a04db84b93c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_thumbnail@
+foreign import ccall safe "hs_bindgen_74fcac5da0f6fe3d" hs_bindgen_74fcac5da0f6fe3d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_thumbnail@
+hs_bindgen_74fcac5da0f6fe3d ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_74fcac5da0f6fe3d =
+  BG.fromFFIType hs_bindgen_74fcac5da0f6fe3d_base
+
+{-| __C declaration:__ @heif_image_handle_get_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 113:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_thumbnail ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @thumbnail_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumbnail_handle@
+  -> IO Heif_error
+heif_image_handle_get_thumbnail =
+  \main_image_handle0 ->
+    \thumbnail_id1 ->
+      \out_thumbnail_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_74fcac5da0f6fe3d main_image_handle0 thumbnail_id1 out_thumbnail_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_thumbnail@
+foreign import ccall safe "hs_bindgen_0d7512b56eac000e" hs_bindgen_0d7512b56eac000e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_thumbnail@
+hs_bindgen_0d7512b56eac000e ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_0d7512b56eac000e =
+  BG.fromFFIType hs_bindgen_0d7512b56eac000e_base
+
+{-| __C declaration:__ @heif_context_encode_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image_handle@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bbox_size@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumb_image_handle@
+  -> IO Heif_error
+heif_context_encode_thumbnail =
+  \x0 ->
+    \image1 ->
+      \master_image_handle2 ->
+        \encoder3 ->
+          \options4 ->
+            \bbox_size5 ->
+              \out_thumb_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_0d7512b56eac000e x0 image1 master_image_handle2 encoder3 options4 bbox_size5 out_thumb_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_assign_thumbnail@
+foreign import ccall safe "hs_bindgen_efcd1e0532f3cce0" hs_bindgen_efcd1e0532f3cce0_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_assign_thumbnail@
+hs_bindgen_efcd1e0532f3cce0 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_efcd1e0532f3cce0 =
+  BG.fromFFIType hs_bindgen_efcd1e0532f3cce0_base
+
+{-| __C declaration:__ @heif_context_assign_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 136:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_assign_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @thumbnail_image@
+  -> IO Heif_error
+heif_context_assign_thumbnail =
+  \x0 ->
+    \master_image1 ->
+      \thumbnail_image2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_efcd1e0532f3cce0 x0 master_image1 thumbnail_image2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_auxiliary_images@
+foreign import ccall safe "hs_bindgen_c91e031dfd1a0e78" hs_bindgen_c91e031dfd1a0e78_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_auxiliary_images@
+hs_bindgen_c91e031dfd1a0e78 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_c91e031dfd1a0e78 =
+  BG.fromFFIType hs_bindgen_c91e031dfd1a0e78_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_auxiliary_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_auxiliary_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_auxiliary_images =
+  hs_bindgen_c91e031dfd1a0e78
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+foreign import ccall safe "hs_bindgen_fcf1bde2005bf76f" hs_bindgen_fcf1bde2005bf76f_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+hs_bindgen_fcf1bde2005bf76f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_fcf1bde2005bf76f =
+  BG.fromFFIType hs_bindgen_fcf1bde2005bf76f_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_auxiliary_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 152:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_auxiliary_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_auxiliary_image_IDs =
+  hs_bindgen_fcf1bde2005bf76f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_type@
+foreign import ccall safe "hs_bindgen_7eda525d1bdf7412" hs_bindgen_7eda525d1bdf7412_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_type@
+hs_bindgen_7eda525d1bdf7412 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7eda525d1bdf7412 =
+  BG.fromFFIType hs_bindgen_7eda525d1bdf7412_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 158:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_type =
+  \handle0 ->
+    \out_type1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_7eda525d1bdf7412 handle0 out_type1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release_auxiliary_type@
+foreign import ccall safe "hs_bindgen_7a949d12902feb72" hs_bindgen_7a949d12902feb72_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release_auxiliary_type@
+hs_bindgen_7a949d12902feb72 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_7a949d12902feb72 =
+  BG.fromFFIType hs_bindgen_7a949d12902feb72_base
+
+{-| __C declaration:__ @heif_image_handle_release_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 162:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_release_auxiliary_type =
+  hs_bindgen_7a949d12902feb72
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_image_handle@
+foreign import ccall safe "hs_bindgen_aad627a91e87ac22" hs_bindgen_aad627a91e87ac22_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_auxiliary_image_handle@
+hs_bindgen_aad627a91e87ac22 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_aad627a91e87ac22 =
+  BG.fromFFIType hs_bindgen_aad627a91e87ac22_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @auxiliary_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_auxiliary_handle@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_image_handle =
+  \main_image_handle0 ->
+    \auxiliary_id1 ->
+      \out_auxiliary_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_aad627a91e87ac22 main_image_handle0 auxiliary_id1 out_auxiliary_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_free_auxiliary_types@
+foreign import ccall safe "hs_bindgen_3e5bdbce07abeacb" hs_bindgen_3e5bdbce07abeacb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_free_auxiliary_types@
+hs_bindgen_3e5bdbce07abeacb ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_3e5bdbce07abeacb =
+  BG.fromFFIType hs_bindgen_3e5bdbce07abeacb_base
+
+{-| __C declaration:__ @heif_image_handle_free_auxiliary_types@
+
+    __defined at:__ @libheif\/heif_aux_images.h 175:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_free_auxiliary_types ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_free_auxiliary_types =
+  hs_bindgen_3e5bdbce07abeacb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_entity_groups@
+foreign import ccall safe "hs_bindgen_324b9ac9bccacbea" hs_bindgen_324b9ac9bccacbea_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_entity_groups@
+hs_bindgen_324b9ac9bccacbea ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> Heif_item_id
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr Heif_entity_group)
+hs_bindgen_324b9ac9bccacbea =
+  BG.fromFFIType hs_bindgen_324b9ac9bccacbea_base
+
+{-| __C declaration:__ @heif_context_get_entity_groups@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 46:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_entity_groups ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @type_filter@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @item_filter@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_num_groups@
+  -> IO (BG.Ptr Heif_entity_group)
+heif_context_get_entity_groups =
+  hs_bindgen_324b9ac9bccacbea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_entity_groups_release@
+foreign import ccall safe "hs_bindgen_5b6c3bc2afeaec5a" hs_bindgen_5b6c3bc2afeaec5a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_entity_groups_release@
+hs_bindgen_5b6c3bc2afeaec5a ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_5b6c3bc2afeaec5a =
+  BG.fromFFIType hs_bindgen_5b6c3bc2afeaec5a_base
+
+{-| __C declaration:__ @heif_entity_groups_release@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 53:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_entity_groups_release ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+     -- ^ __C declaration:__ @num_groups@
+  -> IO ()
+heif_entity_groups_release =
+  hs_bindgen_5b6c3bc2afeaec5a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_global_security_limits@
+foreign import ccall safe "hs_bindgen_8bb38c3366b348bc" hs_bindgen_8bb38c3366b348bc_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_global_security_limits@
+hs_bindgen_8bb38c3366b348bc :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_8bb38c3366b348bc =
+  BG.fromFFIType hs_bindgen_8bb38c3366b348bc_base
+
+{-| __C declaration:__ @heif_get_global_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 94:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_global_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_global_security_limits =
+  hs_bindgen_8bb38c3366b348bc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_disabled_security_limits@
+foreign import ccall safe "hs_bindgen_21dab9bbdea240f9" hs_bindgen_21dab9bbdea240f9_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_disabled_security_limits@
+hs_bindgen_21dab9bbdea240f9 :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_21dab9bbdea240f9 =
+  BG.fromFFIType hs_bindgen_21dab9bbdea240f9_base
+
+{-| __C declaration:__ @heif_get_disabled_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 98:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_disabled_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_disabled_security_limits =
+  hs_bindgen_21dab9bbdea240f9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_security_limits@
+foreign import ccall safe "hs_bindgen_5ef579d9235552d1" hs_bindgen_5ef579d9235552d1_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_security_limits@
+hs_bindgen_5ef579d9235552d1 ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+hs_bindgen_5ef579d9235552d1 =
+  BG.fromFFIType hs_bindgen_5ef579d9235552d1_base
+
+{-| __C declaration:__ @heif_context_get_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 103:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_security_limits ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+heif_context_get_security_limits =
+  hs_bindgen_5ef579d9235552d1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_security_limits@
+foreign import ccall safe "hs_bindgen_57a440143dafec19" hs_bindgen_57a440143dafec19_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_security_limits@
+hs_bindgen_57a440143dafec19 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_57a440143dafec19 =
+  BG.fromFFIType hs_bindgen_57a440143dafec19_base
+
+{-| __C declaration:__ @heif_context_set_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_security_limits ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> IO Heif_error
+heif_context_set_security_limits =
+  \x0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_57a440143dafec19 x0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_maximum_image_size_limit@
+foreign import ccall safe "hs_bindgen_cf4163e78a532a00" hs_bindgen_cf4163e78a532a00_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_maximum_image_size_limit@
+hs_bindgen_cf4163e78a532a00 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_cf4163e78a532a00 =
+  BG.fromFFIType hs_bindgen_cf4163e78a532a00_base
+
+{-| __C declaration:__ @heif_context_set_maximum_image_size_limit@
+
+    __defined at:__ @libheif\/heif_security.h 117:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_maximum_image_size_limit ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @maximum_width@
+  -> IO ()
+heif_context_set_maximum_image_size_limit =
+  hs_bindgen_cf4163e78a532a00
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_alloc@
+foreign import ccall safe "hs_bindgen_4f11b82642ca89a5" hs_bindgen_4f11b82642ca89a5_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_alloc@
+hs_bindgen_4f11b82642ca89a5 :: IO (BG.Ptr Heif_context)
+hs_bindgen_4f11b82642ca89a5 =
+  BG.fromFFIType hs_bindgen_4f11b82642ca89a5_base
+
+{-| __C declaration:__ @heif_context_alloc@
+
+    __defined at:__ @libheif\/heif_context.h 130:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_alloc :: IO (BG.Ptr Heif_context)
+heif_context_alloc = hs_bindgen_4f11b82642ca89a5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_free@
+foreign import ccall safe "hs_bindgen_97d3146ab8e2e79e" hs_bindgen_97d3146ab8e2e79e_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_free@
+hs_bindgen_97d3146ab8e2e79e ::
+     BG.Ptr Heif_context
+  -> IO ()
+hs_bindgen_97d3146ab8e2e79e =
+  BG.fromFFIType hs_bindgen_97d3146ab8e2e79e_base
+
+{-| __C declaration:__ @heif_context_free@
+
+    __defined at:__ @libheif\/heif_context.h 134:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_free ::
+     BG.Ptr Heif_context
+  -> IO ()
+heif_context_free = hs_bindgen_97d3146ab8e2e79e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_file@
+foreign import ccall safe "hs_bindgen_da6b2212d5c04e61" hs_bindgen_da6b2212d5c04e61_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_file@
+hs_bindgen_da6b2212d5c04e61 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_da6b2212d5c04e61 =
+  BG.fromFFIType hs_bindgen_da6b2212d5c04e61_base
+
+{-| __C declaration:__ @heif_context_read_from_file@
+
+    __defined at:__ @libheif\/heif_context.h 237:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_file =
+  \x0 ->
+    \filename1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_da6b2212d5c04e61 x0 filename1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory@
+foreign import ccall safe "hs_bindgen_e14cdfad18c1ee01" hs_bindgen_e14cdfad18c1ee01_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory@
+hs_bindgen_e14cdfad18c1ee01 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e14cdfad18c1ee01 =
+  BG.fromFFIType hs_bindgen_e14cdfad18c1ee01_base
+
+{-| __C declaration:__ @heif_context_read_from_memory@
+
+    __defined at:__ @libheif\/heif_context.h 244:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_e14cdfad18c1ee01 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory_without_copy@
+foreign import ccall safe "hs_bindgen_41af2790f3e2e582" hs_bindgen_41af2790f3e2e582_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_memory_without_copy@
+hs_bindgen_41af2790f3e2e582 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_41af2790f3e2e582 =
+  BG.fromFFIType hs_bindgen_41af2790f3e2e582_base
+
+{-| __C declaration:__ @heif_context_read_from_memory_without_copy@
+
+    __defined at:__ @libheif\/heif_context.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory_without_copy ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory_without_copy =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_41af2790f3e2e582 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_reader@
+foreign import ccall safe "hs_bindgen_41beae81a04b6975" hs_bindgen_41beae81a04b6975_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_read_from_reader@
+hs_bindgen_41beae81a04b6975 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+  -> BG.Ptr BG.Void
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_41beae81a04b6975 =
+  BG.fromFFIType hs_bindgen_41beae81a04b6975_base
+
+{-| __C declaration:__ @heif_context_read_from_reader@
+
+    __defined at:__ @libheif\/heif_context.h 256:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_reader ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+     -- ^ __C declaration:__ @reader@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_reader =
+  \x0 ->
+    \reader1 ->
+      \userdata2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_41beae81a04b6975 x0 reader1 userdata2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_number_of_top_level_images@
+foreign import ccall safe "hs_bindgen_24967fda9033f6a8" hs_bindgen_24967fda9033f6a8_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_number_of_top_level_images@
+hs_bindgen_24967fda9033f6a8 ::
+     BG.Ptr Heif_context
+  -> IO BG.CInt
+hs_bindgen_24967fda9033f6a8 =
+  BG.fromFFIType hs_bindgen_24967fda9033f6a8_base
+
+{-| __C declaration:__ @heif_context_get_number_of_top_level_images@
+
+    __defined at:__ @libheif\/heif_context.h 265:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_number_of_top_level_images ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_number_of_top_level_images =
+  hs_bindgen_24967fda9033f6a8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_is_top_level_image_ID@
+foreign import ccall safe "hs_bindgen_60a32ad03b88d023" hs_bindgen_60a32ad03b88d023_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_is_top_level_image_ID@
+hs_bindgen_60a32ad03b88d023 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> IO BG.CInt
+hs_bindgen_60a32ad03b88d023 =
+  BG.fromFFIType hs_bindgen_60a32ad03b88d023_base
+
+{-| __C declaration:__ @heif_context_is_top_level_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 268:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_is_top_level_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO BG.CInt
+heif_context_is_top_level_image_ID =
+  hs_bindgen_60a32ad03b88d023
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_list_of_top_level_image_IDs@
+foreign import ccall safe "hs_bindgen_0b88933276286d97" hs_bindgen_0b88933276286d97_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_list_of_top_level_image_IDs@
+hs_bindgen_0b88933276286d97 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_0b88933276286d97 =
+  BG.fromFFIType hs_bindgen_0b88933276286d97_base
+
+{-| __C declaration:__ @heif_context_get_list_of_top_level_image_IDs@
+
+    __defined at:__ @libheif\/heif_context.h 273:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_list_of_top_level_image_IDs ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ID_array@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_list_of_top_level_image_IDs =
+  hs_bindgen_0b88933276286d97
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_ID@
+foreign import ccall safe "hs_bindgen_d2b9465ca3f1a7a3" hs_bindgen_d2b9465ca3f1a7a3_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_ID@
+hs_bindgen_d2b9465ca3f1a7a3 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d2b9465ca3f1a7a3 =
+  BG.fromFFIType hs_bindgen_d2b9465ca3f1a7a3_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 278:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO Heif_error
+heif_context_get_primary_image_ID =
+  \ctx0 ->
+    \id1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_d2b9465ca3f1a7a3 ctx0 id1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_handle@
+foreign import ccall safe "hs_bindgen_eddef87dcb6b9da2" hs_bindgen_eddef87dcb6b9da2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_primary_image_handle@
+hs_bindgen_eddef87dcb6b9da2 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_eddef87dcb6b9da2 =
+  BG.fromFFIType hs_bindgen_eddef87dcb6b9da2_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 283:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_primary_image_handle =
+  \ctx0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_eddef87dcb6b9da2 ctx0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_image_handle@
+foreign import ccall safe "hs_bindgen_64043a0ab8e93721" hs_bindgen_64043a0ab8e93721_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_image_handle@
+hs_bindgen_64043a0ab8e93721 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_64043a0ab8e93721 =
+  BG.fromFFIType hs_bindgen_64043a0ab8e93721_base
+
+{-| __C declaration:__ @heif_context_get_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 288:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_image_handle =
+  \ctx0 ->
+    \id1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_64043a0ab8e93721 ctx0 id1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_debug_dump_boxes_to_file@
+foreign import ccall safe "hs_bindgen_b25f68ddfd09f003" hs_bindgen_b25f68ddfd09f003_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_debug_dump_boxes_to_file@
+hs_bindgen_b25f68ddfd09f003 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_b25f68ddfd09f003 =
+  BG.fromFFIType hs_bindgen_b25f68ddfd09f003_base
+
+{-| __C declaration:__ @heif_context_debug_dump_boxes_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 296:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_debug_dump_boxes_to_file ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @fd@
+  -> IO ()
+heif_context_debug_dump_boxes_to_file =
+  hs_bindgen_b25f68ddfd09f003
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_write_mini_format@
+foreign import ccall safe "hs_bindgen_33eec71afe55377e" hs_bindgen_33eec71afe55377e_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_write_mini_format@
+hs_bindgen_33eec71afe55377e ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_33eec71afe55377e =
+  BG.fromFFIType hs_bindgen_33eec71afe55377e_base
+
+{-| __C declaration:__ @heif_context_set_write_mini_format@
+
+    __defined at:__ @libheif\/heif_context.h 309:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_write_mini_format ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO ()
+heif_context_set_write_mini_format =
+  hs_bindgen_33eec71afe55377e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write_to_file@
+foreign import ccall safe "hs_bindgen_4ccb67696cf9af48" hs_bindgen_4ccb67696cf9af48_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write_to_file@
+hs_bindgen_4ccb67696cf9af48 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4ccb67696cf9af48 =
+  BG.fromFFIType hs_bindgen_4ccb67696cf9af48_base
+
+{-| __C declaration:__ @heif_context_write_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 316:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write_to_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> IO Heif_error
+heif_context_write_to_file =
+  \x0 ->
+    \filename1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4ccb67696cf9af48 x0 filename1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write@
+foreign import ccall safe "hs_bindgen_567900ed014ef754" hs_bindgen_567900ed014ef754_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_write@
+hs_bindgen_567900ed014ef754 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_567900ed014ef754 =
+  BG.fromFFIType hs_bindgen_567900ed014ef754_base
+
+{-| __C declaration:__ @heif_context_write@
+
+    __defined at:__ @libheif\/heif_context.h 335:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+     -- ^ __C declaration:__ @writer@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> IO Heif_error
+heif_context_write =
+  \x0 ->
+    \writer1 ->
+      \userdata2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_567900ed014ef754 x0 writer1 userdata2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_encoder_for_format@
+foreign import ccall safe "hs_bindgen_eec4a0d4bef90233" hs_bindgen_eec4a0d4bef90233_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_encoder_for_format@
+hs_bindgen_eec4a0d4bef90233 ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_eec4a0d4bef90233 =
+  BG.fromFFIType hs_bindgen_eec4a0d4bef90233_base
+
+{-| __C declaration:__ @heif_have_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 63:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_encoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_encoder_for_format =
+  hs_bindgen_eec4a0d4bef90233
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_encoder_descriptors@
+foreign import ccall safe "hs_bindgen_52de4c5e7a32818d" hs_bindgen_52de4c5e7a32818d_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_encoder_descriptors@
+hs_bindgen_52de4c5e7a32818d ::
+     Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_52de4c5e7a32818d =
+  BG.fromFFIType hs_bindgen_52de4c5e7a32818d_base
+
+{-| __C declaration:__ @heif_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 72:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_encoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_encoder_descriptors =
+  hs_bindgen_52de4c5e7a32818d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_name@
+foreign import ccall safe "hs_bindgen_1174aa754ff0ec8a" hs_bindgen_1174aa754ff0ec8a_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_name@
+hs_bindgen_1174aa754ff0ec8a ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_1174aa754ff0ec8a =
+  BG.fromFFIType hs_bindgen_1174aa754ff0ec8a_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 79:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_name =
+  hs_bindgen_1174aa754ff0ec8a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_id_name@
+foreign import ccall safe "hs_bindgen_db3d052821cb7feb" hs_bindgen_db3d052821cb7feb_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_id_name@
+hs_bindgen_db3d052821cb7feb ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_db3d052821cb7feb =
+  BG.fromFFIType hs_bindgen_db3d052821cb7feb_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 84:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_id_name =
+  hs_bindgen_db3d052821cb7feb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_compression_format@
+foreign import ccall safe "hs_bindgen_7a091fe5257e2928" hs_bindgen_7a091fe5257e2928_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_get_compression_format@
+hs_bindgen_7a091fe5257e2928 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+hs_bindgen_7a091fe5257e2928 =
+  BG.fromFFIType hs_bindgen_7a091fe5257e2928_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_compression_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 88:1@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_compression_format ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+heif_encoder_descriptor_get_compression_format =
+  hs_bindgen_7a091fe5257e2928
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossy_compression@
+foreign import ccall safe "hs_bindgen_9855aa70160fb232" hs_bindgen_9855aa70160fb232_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossy_compression@
+hs_bindgen_9855aa70160fb232 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_9855aa70160fb232 =
+  BG.fromFFIType hs_bindgen_9855aa70160fb232_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 91:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossy_compression =
+  hs_bindgen_9855aa70160fb232
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossless_compression@
+foreign import ccall safe "hs_bindgen_e8aa3e2ad6e21521" hs_bindgen_e8aa3e2ad6e21521_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supports_lossless_compression@
+hs_bindgen_e8aa3e2ad6e21521 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_e8aa3e2ad6e21521 =
+  BG.fromFFIType hs_bindgen_e8aa3e2ad6e21521_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 94:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossless_compression =
+  hs_bindgen_e8aa3e2ad6e21521
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder@
+foreign import ccall safe "hs_bindgen_5e0d51edb7f5e790" hs_bindgen_5e0d51edb7f5e790_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder@
+hs_bindgen_5e0d51edb7f5e790 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5e0d51edb7f5e790 =
+  BG.fromFFIType hs_bindgen_5e0d51edb7f5e790_base
+
+{-| __C declaration:__ @heif_context_get_encoder@
+
+    __defined at:__ @libheif\/heif_encoding.h 99:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+     -- ^ __C declaration:__ @out_encoder@
+  -> IO Heif_error
+heif_context_get_encoder =
+  \context0 ->
+    \x1 ->
+      \out_encoder2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_5e0d51edb7f5e790 context0 x1 out_encoder2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_for_format@
+foreign import ccall safe "hs_bindgen_e87023be50eb7156" hs_bindgen_e87023be50eb7156_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_for_format@
+hs_bindgen_e87023be50eb7156 ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e87023be50eb7156 =
+  BG.fromFFIType hs_bindgen_e87023be50eb7156_base
+
+{-| __C declaration:__ @heif_context_get_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 106:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_for_format ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> IO Heif_error
+heif_context_get_encoder_for_format =
+  \context0 ->
+    \format1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_e87023be50eb7156 context0 format1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_release@
+foreign import ccall safe "hs_bindgen_9ef0bda629baf529" hs_bindgen_9ef0bda629baf529_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_release@
+hs_bindgen_9ef0bda629baf529 ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+hs_bindgen_9ef0bda629baf529 =
+  BG.fromFFIType hs_bindgen_9ef0bda629baf529_base
+
+{-| __C declaration:__ @heif_encoder_release@
+
+    __defined at:__ @libheif\/heif_encoding.h 114:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_release ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+heif_encoder_release = hs_bindgen_9ef0bda629baf529
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_name@
+foreign import ccall safe "hs_bindgen_eb93268554bef6fb" hs_bindgen_eb93268554bef6fb_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_name@
+hs_bindgen_eb93268554bef6fb ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_eb93268554bef6fb =
+  BG.fromFFIType hs_bindgen_eb93268554bef6fb_base
+
+{-| __C declaration:__ @heif_encoder_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 118:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_name ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_get_name = hs_bindgen_eb93268554bef6fb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossy_quality@
+foreign import ccall safe "hs_bindgen_eb6a076f846bdaa3" hs_bindgen_eb6a076f846bdaa3_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossy_quality@
+hs_bindgen_eb6a076f846bdaa3 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_eb6a076f846bdaa3 =
+  BG.fromFFIType hs_bindgen_eb6a076f846bdaa3_base
+
+{-| __C declaration:__ @heif_encoder_set_lossy_quality@
+
+    __defined at:__ @libheif\/heif_encoding.h 134:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossy_quality ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @quality@
+  -> IO Heif_error
+heif_encoder_set_lossy_quality =
+  \x0 ->
+    \quality1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_eb6a076f846bdaa3 x0 quality1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossless@
+foreign import ccall safe "hs_bindgen_979d01b0f5a3cad4" hs_bindgen_979d01b0f5a3cad4_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_lossless@
+hs_bindgen_979d01b0f5a3cad4 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_979d01b0f5a3cad4 =
+  BG.fromFFIType hs_bindgen_979d01b0f5a3cad4_base
+
+{-| __C declaration:__ @heif_encoder_set_lossless@
+
+    __defined at:__ @libheif\/heif_encoding.h 137:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossless ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO Heif_error
+heif_encoder_set_lossless =
+  \x0 ->
+    \enable1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_979d01b0f5a3cad4 x0 enable1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_logging_level@
+foreign import ccall safe "hs_bindgen_24781b15a9b8e5df" hs_bindgen_24781b15a9b8e5df_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_logging_level@
+hs_bindgen_24781b15a9b8e5df ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_24781b15a9b8e5df =
+  BG.fromFFIType hs_bindgen_24781b15a9b8e5df_base
+
+{-| __C declaration:__ @heif_encoder_set_logging_level@
+
+    __defined at:__ @libheif\/heif_encoding.h 141:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_logging_level ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @level@
+  -> IO Heif_error
+heif_encoder_set_logging_level =
+  \x0 ->
+    \level1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_24781b15a9b8e5df x0 level1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_list_parameters@
+foreign import ccall safe "hs_bindgen_18ea2b17f3c2144a" hs_bindgen_18ea2b17f3c2144a_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_list_parameters@
+hs_bindgen_18ea2b17f3c2144a ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+hs_bindgen_18ea2b17f3c2144a =
+  BG.fromFFIType hs_bindgen_18ea2b17f3c2144a_base
+
+{-| __C declaration:__ @heif_encoder_list_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 147:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_list_parameters ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+heif_encoder_list_parameters =
+  hs_bindgen_18ea2b17f3c2144a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_name@
+foreign import ccall safe "hs_bindgen_af3caa9ff0a88eb8" hs_bindgen_af3caa9ff0a88eb8_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_name@
+hs_bindgen_af3caa9ff0a88eb8 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_af3caa9ff0a88eb8 =
+  BG.fromFFIType hs_bindgen_af3caa9ff0a88eb8_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 151:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_name ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_parameter_get_name =
+  hs_bindgen_af3caa9ff0a88eb8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_type@
+foreign import ccall safe "hs_bindgen_a1285395e3755e61" hs_bindgen_a1285395e3755e61_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_type@
+hs_bindgen_a1285395e3755e61 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+hs_bindgen_a1285395e3755e61 =
+  BG.fromFFIType hs_bindgen_a1285395e3755e61_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 163:34@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_type ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+heif_encoder_parameter_get_type =
+  hs_bindgen_a1285395e3755e61
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_range@
+foreign import ccall safe "hs_bindgen_f5e5f609ff5ef7aa" hs_bindgen_f5e5f609ff5ef7aa_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_range@
+hs_bindgen_f5e5f609ff5ef7aa ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f5e5f609ff5ef7aa =
+  BG.fromFFIType hs_bindgen_f5e5f609ff5ef7aa_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_range ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_range =
+  \x0 ->
+    \have_minimum_maximum1 ->
+      \minimum2 ->
+        \maximum3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_f5e5f609ff5ef7aa x0 have_minimum_maximum1 minimum2 maximum3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_values@
+foreign import ccall safe "hs_bindgen_41c9049f903741b9" hs_bindgen_41c9049f903741b9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_integer_values@
+hs_bindgen_41c9049f903741b9 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_41c9049f903741b9 =
+  BG.fromFFIType hs_bindgen_41c9049f903741b9_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 174:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_values =
+  \x0 ->
+    \have_minimum1 ->
+      \have_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            \num_valid_values5 ->
+              \out_integer_array6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_41c9049f903741b9 x0 have_minimum1 have_maximum2 minimum3 maximum4 num_valid_values5 out_integer_array6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_string_values@
+foreign import ccall safe "hs_bindgen_83a47350b89b3e72" hs_bindgen_83a47350b89b3e72_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_get_valid_string_values@
+hs_bindgen_83a47350b89b3e72 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_83a47350b89b3e72 =
+  BG.fromFFIType hs_bindgen_83a47350b89b3e72_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_string_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 181:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_string_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_string_values =
+  \x0 ->
+    \out_stringarray1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_83a47350b89b3e72 x0 out_stringarray1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_integer@
+foreign import ccall safe "hs_bindgen_18cabf49ede306b0" hs_bindgen_18cabf49ede306b0_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_integer@
+hs_bindgen_18cabf49ede306b0 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_18cabf49ede306b0 =
+  BG.fromFFIType hs_bindgen_18cabf49ede306b0_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 186:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_18cabf49ede306b0 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_integer@
+foreign import ccall safe "hs_bindgen_9904a2037102bffe" hs_bindgen_9904a2037102bffe_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_integer@
+hs_bindgen_9904a2037102bffe ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9904a2037102bffe =
+  BG.fromFFIType hs_bindgen_9904a2037102bffe_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 191:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_9904a2037102bffe x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_range@
+foreign import ccall safe "hs_bindgen_1bc5d24eb27254b7" hs_bindgen_1bc5d24eb27254b7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_range@
+hs_bindgen_1bc5d24eb27254b7 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_1bc5d24eb27254b7 =
+  BG.fromFFIType hs_bindgen_1bc5d24eb27254b7_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_range ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_range =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_1bc5d24eb27254b7 x0 parameter_name1 have_minimum_maximum2 minimum3 maximum4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_boolean@
+foreign import ccall safe "hs_bindgen_836ffd64ae147e78" hs_bindgen_836ffd64ae147e78_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_boolean@
+hs_bindgen_836ffd64ae147e78 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_836ffd64ae147e78 =
+  BG.fromFFIType hs_bindgen_836ffd64ae147e78_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 203:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_836ffd64ae147e78 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_boolean@
+foreign import ccall safe "hs_bindgen_19a10bdb28e623c2" hs_bindgen_19a10bdb28e623c2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_boolean@
+hs_bindgen_19a10bdb28e623c2 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_19a10bdb28e623c2 =
+  BG.fromFFIType hs_bindgen_19a10bdb28e623c2_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 208:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_19a10bdb28e623c2 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_string@
+foreign import ccall safe "hs_bindgen_6e45433398da3eb9" hs_bindgen_6e45433398da3eb9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter_string@
+hs_bindgen_6e45433398da3eb9 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6e45433398da3eb9 =
+  BG.fromFFIType hs_bindgen_6e45433398da3eb9_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 213:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_6e45433398da3eb9 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_string@
+foreign import ccall safe "hs_bindgen_85f0477af2b5af28" hs_bindgen_85f0477af2b5af28_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter_string@
+hs_bindgen_85f0477af2b5af28 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_85f0477af2b5af28 =
+  BG.fromFFIType hs_bindgen_85f0477af2b5af28_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_85f0477af2b5af28 x0 parameter_name1 value2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_string_valid_values@
+foreign import ccall safe "hs_bindgen_813480544a744b7d" hs_bindgen_813480544a744b7d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_string_valid_values@
+hs_bindgen_813480544a744b7d ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_813480544a744b7d =
+  BG.fromFFIType hs_bindgen_813480544a744b7d_base
+
+{-| __C declaration:__ @heif_encoder_parameter_string_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 224:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_string_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_string_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \out_stringarray2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_813480544a744b7d x0 parameter_name1 out_stringarray2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_values@
+foreign import ccall safe "hs_bindgen_06fdadacba1a360c" hs_bindgen_06fdadacba1a360c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_parameter_integer_valid_values@
+hs_bindgen_06fdadacba1a360c ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_06fdadacba1a360c =
+  BG.fromFFIType hs_bindgen_06fdadacba1a360c_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 229:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum2 ->
+        \have_maximum3 ->
+          \minimum4 ->
+            \maximum5 ->
+              \num_valid_values6 ->
+                \out_integer_array7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_06fdadacba1a360c x0 parameter_name1 have_minimum2 have_maximum3 minimum4 maximum5 num_valid_values6 out_integer_array7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter@
+foreign import ccall safe "hs_bindgen_3e58e2dcaa03feb8" hs_bindgen_3e58e2dcaa03feb8_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_set_parameter@
+hs_bindgen_3e58e2dcaa03feb8 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_3e58e2dcaa03feb8 =
+  BG.fromFFIType hs_bindgen_3e58e2dcaa03feb8_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 246:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_3e58e2dcaa03feb8 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter@
+foreign import ccall safe "hs_bindgen_931fa955709de69d" hs_bindgen_931fa955709de69d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_get_parameter@
+hs_bindgen_931fa955709de69d ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_931fa955709de69d =
+  BG.fromFFIType hs_bindgen_931fa955709de69d_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 253:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value_ptr@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value_ptr2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_931fa955709de69d x0 parameter_name1 value_ptr2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_has_default@
+foreign import ccall safe "hs_bindgen_cadb6a2220566e31" hs_bindgen_cadb6a2220566e31_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_has_default@
+hs_bindgen_cadb6a2220566e31 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_cadb6a2220566e31 =
+  BG.fromFFIType hs_bindgen_cadb6a2220566e31_base
+
+{-| __C declaration:__ @heif_encoder_has_default@
+
+    __defined at:__ @libheif\/heif_encoding.h 259:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_has_default ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> IO BG.CInt
+heif_encoder_has_default =
+  hs_bindgen_cadb6a2220566e31
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_orientation_concat@
+foreign import ccall safe "hs_bindgen_73125422635fa771" hs_bindgen_73125422635fa771_base ::
+     BG.Word32
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_orientation_concat@
+hs_bindgen_73125422635fa771 ::
+     Heif_orientation
+  -> Heif_orientation
+  -> IO Heif_orientation
+hs_bindgen_73125422635fa771 =
+  BG.fromFFIType hs_bindgen_73125422635fa771_base
+
+{-| __C declaration:__ @heif_orientation_concat@
+
+    __defined at:__ @libheif\/heif_encoding.h 278:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_orientation_concat ::
+     Heif_orientation
+     -- ^ __C declaration:__ @first@
+  -> Heif_orientation
+     -- ^ __C declaration:__ @second@
+  -> IO Heif_orientation
+heif_orientation_concat = hs_bindgen_73125422635fa771
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_alloc@
+foreign import ccall safe "hs_bindgen_1800acc2f4b03a9f" hs_bindgen_1800acc2f4b03a9f_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_alloc@
+hs_bindgen_1800acc2f4b03a9f :: IO (BG.Ptr Heif_encoding_options)
+hs_bindgen_1800acc2f4b03a9f =
+  BG.fromFFIType hs_bindgen_1800acc2f4b03a9f_base
+
+{-| __C declaration:__ @heif_encoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_encoding.h 335:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_alloc :: IO (BG.Ptr Heif_encoding_options)
+heif_encoding_options_alloc =
+  hs_bindgen_1800acc2f4b03a9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_copy@
+foreign import ccall safe "hs_bindgen_fe75402432667b03" hs_bindgen_fe75402432667b03_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_copy@
+hs_bindgen_fe75402432667b03 ::
+     BG.Ptr Heif_encoding_options
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> IO ()
+hs_bindgen_fe75402432667b03 =
+  BG.fromFFIType hs_bindgen_fe75402432667b03_base
+
+{-| __C declaration:__ @heif_encoding_options_copy@
+
+    __defined at:__ @libheif\/heif_encoding.h 338:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_copy ::
+     BG.Ptr Heif_encoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_encoding_options_copy =
+  hs_bindgen_fe75402432667b03
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_free@
+foreign import ccall safe "hs_bindgen_da67241096710c84" hs_bindgen_da67241096710c84_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoding_options_free@
+hs_bindgen_da67241096710c84 ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+hs_bindgen_da67241096710c84 =
+  BG.fromFFIType hs_bindgen_da67241096710c84_base
+
+{-| __C declaration:__ @heif_encoding_options_free@
+
+    __defined at:__ @libheif\/heif_encoding.h 341:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_free ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+heif_encoding_options_free =
+  hs_bindgen_da67241096710c84
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_image@
+foreign import ccall safe "hs_bindgen_28f09a80ffe40e3d" hs_bindgen_28f09a80ffe40e3d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_image@
+hs_bindgen_28f09a80ffe40e3d ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_28f09a80ffe40e3d =
+  BG.fromFFIType hs_bindgen_28f09a80ffe40e3d_base
+
+{-| __C declaration:__ @heif_context_encode_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 350:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_image ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_image =
+  \x0 ->
+    \image1 ->
+      \encoder2 ->
+        \options3 ->
+          \out_image_handle4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_28f09a80ffe40e3d x0 image1 encoder2 options3 out_image_handle4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_overlay_image@
+foreign import ccall safe "hs_bindgen_60d0c75f40f4d059" hs_bindgen_60d0c75f40f4d059_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_overlay_image@
+hs_bindgen_60d0c75f40f4d059 ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word16
+  -> PtrConst.PtrConst Heif_item_id
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_60d0c75f40f4d059 =
+  BG.fromFFIType hs_bindgen_60d0c75f40f4d059_base
+
+{-| __C declaration:__ @heif_context_add_overlay_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 359:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_overlay_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @nImages@
+  -> PtrConst.PtrConst Heif_item_id
+     -- ^ __C declaration:__ @image_ids@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+     -- ^ __C declaration:__ @offsets@
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+     -- ^ __C declaration:__ @background_rgba@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_iovl_image_handle@
+  -> IO Heif_error
+heif_context_add_overlay_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \nImages3 ->
+          \image_ids4 ->
+            \offsets5 ->
+              \background_rgba6 ->
+                \out_iovl_image_handle7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_60d0c75f40f4d059 ctx0 image_width1 image_height2 nImages3 image_ids4 offsets5 background_rgba6 out_iovl_image_handle7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_primary_image@
+foreign import ccall safe "hs_bindgen_63e1fd26aac84129" hs_bindgen_63e1fd26aac84129_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_primary_image@
+hs_bindgen_63e1fd26aac84129 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_63e1fd26aac84129 =
+  BG.fromFFIType hs_bindgen_63e1fd26aac84129_base
+
+{-| __C declaration:__ @heif_context_set_primary_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 369:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_primary_image ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> IO Heif_error
+heif_context_set_primary_image =
+  \x0 ->
+    \image_handle1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_63e1fd26aac84129 x0 image_handle1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_major_brand@
+foreign import ccall safe "hs_bindgen_97f56663bca77c21" hs_bindgen_97f56663bca77c21_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_major_brand@
+hs_bindgen_97f56663bca77c21 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_97f56663bca77c21 =
+  BG.fromFFIType hs_bindgen_97f56663bca77c21_base
+
+{-| __C declaration:__ @heif_context_set_major_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 376:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_major_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @major_brand@
+  -> IO ()
+heif_context_set_major_brand =
+  hs_bindgen_97f56663bca77c21
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_compatible_brand@
+foreign import ccall safe "hs_bindgen_03d0e64d393a7f95" hs_bindgen_03d0e64d393a7f95_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_compatible_brand@
+hs_bindgen_03d0e64d393a7f95 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_03d0e64d393a7f95 =
+  BG.fromFFIType hs_bindgen_03d0e64d393a7f95_base
+
+{-| __C declaration:__ @heif_context_add_compatible_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 381:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_compatible_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @compatible_brand@
+  -> IO ()
+heif_context_add_compatible_brand =
+  hs_bindgen_03d0e64d393a7f95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_unif@
+foreign import ccall safe "hs_bindgen_17c891d9806c5635" hs_bindgen_17c891d9806c5635_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_unif@
+hs_bindgen_17c891d9806c5635 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_17c891d9806c5635 =
+  BG.fromFFIType hs_bindgen_17c891d9806c5635_base
+
+{-| __C declaration:__ @heif_context_set_unif@
+
+    __defined at:__ @libheif\/heif_encoding.h 395:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_unif ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @flag@
+  -> IO ()
+heif_context_set_unif = hs_bindgen_17c891d9806c5635
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossy_compression@
+foreign import ccall safe "hs_bindgen_7331b243ac8c0c44" hs_bindgen_7331b243ac8c0c44_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossy_compression@
+hs_bindgen_7331b243ac8c0c44 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_7331b243ac8c0c44 =
+  BG.fromFFIType hs_bindgen_7331b243ac8c0c44_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossy_compression =
+  hs_bindgen_7331b243ac8c0c44
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossless_compression@
+foreign import ccall safe "hs_bindgen_d9ed40b1c61c857e" hs_bindgen_d9ed40b1c61c857e_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_encoder_descriptor_supportes_lossless_compression@
+hs_bindgen_d9ed40b1c61c857e ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_d9ed40b1c61c857e =
+  BG.fromFFIType hs_bindgen_d9ed40b1c61c857e_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 405:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossless_compression =
+  hs_bindgen_d9ed40b1c61c857e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_descriptors@
+foreign import ccall safe "hs_bindgen_6b3293489791860e" hs_bindgen_6b3293489791860e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_encoder_descriptors@
+hs_bindgen_6b3293489791860e ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_6b3293489791860e =
+  BG.fromFFIType hs_bindgen_6b3293489791860e_base
+
+{-| __C declaration:__ @heif_context_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 415:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_descriptors ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_encoder_descriptors =
+  hs_bindgen_6b3293489791860e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_max_decoding_threads@
+foreign import ccall safe "hs_bindgen_28f0ed35cb9d2279" hs_bindgen_28f0ed35cb9d2279_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_set_max_decoding_threads@
+hs_bindgen_28f0ed35cb9d2279 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_28f0ed35cb9d2279 =
+  BG.fromFFIType hs_bindgen_28f0ed35cb9d2279_base
+
+{-| __C declaration:__ @heif_context_set_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 40:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_max_decoding_threads ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_threads@
+  -> IO ()
+heif_context_set_max_decoding_threads =
+  hs_bindgen_28f0ed35cb9d2279
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_max_decoding_threads@
+foreign import ccall safe "hs_bindgen_70c02de3fb64eb44" hs_bindgen_70c02de3fb64eb44_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_get_max_decoding_threads@
+hs_bindgen_70c02de3fb64eb44 ::
+     PtrConst.PtrConst Heif_context
+  -> IO BG.CInt
+hs_bindgen_70c02de3fb64eb44 =
+  BG.fromFFIType hs_bindgen_70c02de3fb64eb44_base
+
+{-| __C declaration:__ @heif_context_get_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 47:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_max_decoding_threads ::
+     PtrConst.PtrConst Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_max_decoding_threads =
+  hs_bindgen_70c02de3fb64eb44
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_decoder_for_format@
+foreign import ccall safe "hs_bindgen_fae52e49bce8c2d9" hs_bindgen_fae52e49bce8c2d9_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_have_decoder_for_format@
+hs_bindgen_fae52e49bce8c2d9 ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_fae52e49bce8c2d9 =
+  BG.fromFFIType hs_bindgen_fae52e49bce8c2d9_base
+
+{-| __C declaration:__ @heif_have_decoder_for_format@
+
+    __defined at:__ @libheif\/heif_decoding.h 53:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_decoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_decoder_for_format =
+  hs_bindgen_fae52e49bce8c2d9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_alloc@
+foreign import ccall safe "hs_bindgen_102ab775cba50d0e" hs_bindgen_102ab775cba50d0e_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_alloc@
+hs_bindgen_102ab775cba50d0e :: IO (BG.Ptr Heif_decoding_options)
+hs_bindgen_102ab775cba50d0e =
+  BG.fromFFIType hs_bindgen_102ab775cba50d0e_base
+
+{-| __C declaration:__ @heif_decoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_decoding.h 165:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_alloc :: IO (BG.Ptr Heif_decoding_options)
+heif_decoding_options_alloc =
+  hs_bindgen_102ab775cba50d0e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_copy@
+foreign import ccall safe "hs_bindgen_dd38a52f42e667b2" hs_bindgen_dd38a52f42e667b2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_copy@
+hs_bindgen_dd38a52f42e667b2 ::
+     BG.Ptr Heif_decoding_options
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> IO ()
+hs_bindgen_dd38a52f42e667b2 =
+  BG.fromFFIType hs_bindgen_dd38a52f42e667b2_base
+
+{-| __C declaration:__ @heif_decoding_options_copy@
+
+    __defined at:__ @libheif\/heif_decoding.h 168:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_copy ::
+     BG.Ptr Heif_decoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_decoding_options_copy =
+  hs_bindgen_dd38a52f42e667b2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_free@
+foreign import ccall safe "hs_bindgen_9ce764a4e512cd45" hs_bindgen_9ce764a4e512cd45_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoding_options_free@
+hs_bindgen_9ce764a4e512cd45 ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+hs_bindgen_9ce764a4e512cd45 =
+  BG.fromFFIType hs_bindgen_9ce764a4e512cd45_base
+
+{-| __C declaration:__ @heif_decoding_options_free@
+
+    __defined at:__ @libheif\/heif_decoding.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_free ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+heif_decoding_options_free =
+  hs_bindgen_9ce764a4e512cd45
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_decoder_descriptors@
+foreign import ccall safe "hs_bindgen_89078000e479e916" hs_bindgen_89078000e479e916_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_get_decoder_descriptors@
+hs_bindgen_89078000e479e916 ::
+     Heif_compression_format
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_89078000e479e916 =
+  BG.fromFFIType hs_bindgen_89078000e479e916_base
+
+{-| __C declaration:__ @heif_get_decoder_descriptors@
+
+    __defined at:__ @libheif\/heif_decoding.h 183:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_decoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+     -- ^ __C declaration:__ @out_decoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_decoder_descriptors =
+  hs_bindgen_89078000e479e916
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_name@
+foreign import ccall safe "hs_bindgen_6dbb7f5c61ececf8" hs_bindgen_6dbb7f5c61ececf8_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_name@
+hs_bindgen_6dbb7f5c61ececf8 ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_6dbb7f5c61ececf8 =
+  BG.fromFFIType hs_bindgen_6dbb7f5c61ececf8_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 189:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_name =
+  hs_bindgen_6dbb7f5c61ececf8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_id_name@
+foreign import ccall safe "hs_bindgen_ac750dacaf5ed61b" hs_bindgen_ac750dacaf5ed61b_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decoder_descriptor_get_id_name@
+hs_bindgen_ac750dacaf5ed61b ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_ac750dacaf5ed61b =
+  BG.fromFFIType hs_bindgen_ac750dacaf5ed61b_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 195:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_id_name =
+  hs_bindgen_ac750dacaf5ed61b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decode_image@
+foreign import ccall safe "hs_bindgen_9df2f46857b2f874" hs_bindgen_9df2f46857b2f874_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_decode_image@
+hs_bindgen_9df2f46857b2f874 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9df2f46857b2f874 =
+  BG.fromFFIType hs_bindgen_9df2f46857b2f874_base
+
+{-| __C declaration:__ @heif_decode_image@
+
+    __defined at:__ @libheif\/heif_decoding.h 209:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decode_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_decode_image =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_9df2f46857b2f874 in_handle0 out_img1 colorspace2 chroma3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release@
+foreign import ccall safe "hs_bindgen_3f481728e9551d14" hs_bindgen_3f481728e9551d14_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_release@
+hs_bindgen_3f481728e9551d14 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+hs_bindgen_3f481728e9551d14 =
+  BG.fromFFIType hs_bindgen_3f481728e9551d14_base
+
+{-| __C declaration:__ @heif_image_handle_release@
+
+    __defined at:__ @libheif\/heif_image_handle.h 47:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+heif_image_handle_release =
+  hs_bindgen_3f481728e9551d14
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_primary_image@
+foreign import ccall safe "hs_bindgen_c047b47f9376d997" hs_bindgen_c047b47f9376d997_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_primary_image@
+hs_bindgen_c047b47f9376d997 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_c047b47f9376d997 =
+  BG.fromFFIType hs_bindgen_c047b47f9376d997_base
+
+{-| __C declaration:__ @heif_image_handle_is_primary_image@
+
+    __defined at:__ @libheif\/heif_image_handle.h 51:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_primary_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_is_primary_image =
+  hs_bindgen_c047b47f9376d997
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_item_id@
+foreign import ccall safe "hs_bindgen_36d4e2a162ff52b2" hs_bindgen_36d4e2a162ff52b2_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_item_id@
+hs_bindgen_36d4e2a162ff52b2 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_item_id
+hs_bindgen_36d4e2a162ff52b2 =
+  BG.fromFFIType hs_bindgen_36d4e2a162ff52b2_base
+
+{-| __C declaration:__ @heif_image_handle_get_item_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_item_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_item_id
+heif_image_handle_get_item_id =
+  hs_bindgen_36d4e2a162ff52b2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_width@
+foreign import ccall safe "hs_bindgen_ebd6ded40b5d2ee4" hs_bindgen_ebd6ded40b5d2ee4_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_width@
+hs_bindgen_ebd6ded40b5d2ee4 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_ebd6ded40b5d2ee4 =
+  BG.fromFFIType hs_bindgen_ebd6ded40b5d2ee4_base
+
+{-| __C declaration:__ @heif_image_handle_get_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 61:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_width =
+  hs_bindgen_ebd6ded40b5d2ee4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_height@
+foreign import ccall safe "hs_bindgen_43b18c70d95495b8" hs_bindgen_43b18c70d95495b8_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_height@
+hs_bindgen_43b18c70d95495b8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_43b18c70d95495b8 =
+  BG.fromFFIType hs_bindgen_43b18c70d95495b8_base
+
+{-| __C declaration:__ @heif_image_handle_get_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 68:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_height =
+  hs_bindgen_43b18c70d95495b8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_alpha_channel@
+foreign import ccall safe "hs_bindgen_d43fe68f9e8aea95" hs_bindgen_d43fe68f9e8aea95_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_alpha_channel@
+hs_bindgen_d43fe68f9e8aea95 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d43fe68f9e8aea95 =
+  BG.fromFFIType hs_bindgen_d43fe68f9e8aea95_base
+
+{-| __C declaration:__ @heif_image_handle_has_alpha_channel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 71:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_alpha_channel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_alpha_channel =
+  hs_bindgen_d43fe68f9e8aea95
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_premultiplied_alpha@
+foreign import ccall safe "hs_bindgen_318428b307f06343" hs_bindgen_318428b307f06343_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_is_premultiplied_alpha@
+hs_bindgen_318428b307f06343 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_318428b307f06343 =
+  BG.fromFFIType hs_bindgen_318428b307f06343_base
+
+{-| __C declaration:__ @heif_image_handle_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image_handle.h 74:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_premultiplied_alpha ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_is_premultiplied_alpha =
+  hs_bindgen_318428b307f06343
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_luma_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_be41ab4faa6f8082" hs_bindgen_be41ab4faa6f8082_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_luma_bits_per_pixel@
+hs_bindgen_be41ab4faa6f8082 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_be41ab4faa6f8082 =
+  BG.fromFFIType hs_bindgen_be41ab4faa6f8082_base
+
+{-| __C declaration:__ @heif_image_handle_get_luma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 79:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_luma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_luma_bits_per_pixel =
+  hs_bindgen_be41ab4faa6f8082
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_chroma_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_984920cbd156ac9b" hs_bindgen_984920cbd156ac9b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_chroma_bits_per_pixel@
+hs_bindgen_984920cbd156ac9b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_984920cbd156ac9b =
+  BG.fromFFIType hs_bindgen_984920cbd156ac9b_base
+
+{-| __C declaration:__ @heif_image_handle_get_chroma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 84:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_chroma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_chroma_bits_per_pixel =
+  hs_bindgen_984920cbd156ac9b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_preferred_decoding_colorspace@
+foreign import ccall safe "hs_bindgen_f5e3531e6391b927" hs_bindgen_f5e3531e6391b927_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_preferred_decoding_colorspace@
+hs_bindgen_f5e3531e6391b927 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_colorspace
+  -> BG.Ptr Heif_chroma
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f5e3531e6391b927 =
+  BG.fromFFIType hs_bindgen_f5e3531e6391b927_base
+
+{-| __C declaration:__ @heif_image_handle_get_preferred_decoding_colorspace@
+
+    __defined at:__ @libheif\/heif_image_handle.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_preferred_decoding_colorspace ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> BG.Ptr Heif_colorspace
+     -- ^ __C declaration:__ @out_colorspace@
+  -> BG.Ptr Heif_chroma
+     -- ^ __C declaration:__ @out_chroma@
+  -> IO Heif_error
+heif_image_handle_get_preferred_decoding_colorspace =
+  \image_handle0 ->
+    \out_colorspace1 ->
+      \out_chroma2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_f5e3531e6391b927 image_handle0 out_colorspace1 out_chroma2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_width@
+foreign import ccall safe "hs_bindgen_d0e9054b24cf1428" hs_bindgen_d0e9054b24cf1428_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_width@
+hs_bindgen_d0e9054b24cf1428 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d0e9054b24cf1428 =
+  BG.fromFFIType hs_bindgen_d0e9054b24cf1428_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 110:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_width =
+  hs_bindgen_d0e9054b24cf1428
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_height@
+foreign import ccall safe "hs_bindgen_dbbbf9b131586b02" hs_bindgen_dbbbf9b131586b02_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_ispe_height@
+hs_bindgen_dbbbf9b131586b02 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_dbbbf9b131586b02 =
+  BG.fromFFIType hs_bindgen_dbbbf9b131586b02_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_height =
+  hs_bindgen_dbbbf9b131586b02
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_pixel_aspect_ratio@
+foreign import ccall safe "hs_bindgen_3c36641a28b1e88c" hs_bindgen_3c36641a28b1e88c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_pixel_aspect_ratio@
+hs_bindgen_3c36641a28b1e88c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_3c36641a28b1e88c =
+  BG.fromFFIType hs_bindgen_3c36641a28b1e88c_base
+
+{-| __C declaration:__ @heif_image_handle_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image_handle.h 117:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO BG.CInt
+heif_image_handle_get_pixel_aspect_ratio =
+  hs_bindgen_3c36641a28b1e88c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_context@
+foreign import ccall safe "hs_bindgen_84a3dea317661a70" hs_bindgen_84a3dea317661a70_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_context@
+hs_bindgen_84a3dea317661a70 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (BG.Ptr Heif_context)
+hs_bindgen_84a3dea317661a70 =
+  BG.fromFFIType hs_bindgen_84a3dea317661a70_base
+
+{-| __C declaration:__ @heif_image_handle_get_context@
+
+    __defined at:__ @libheif\/heif_image_handle.h 129:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_context ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (BG.Ptr Heif_context)
+heif_image_handle_get_context =
+  hs_bindgen_84a3dea317661a70
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_content_id@
+foreign import ccall safe "hs_bindgen_e67495bf8fb75694" hs_bindgen_e67495bf8fb75694_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_content_id@
+hs_bindgen_e67495bf8fb75694 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_e67495bf8fb75694 =
+  BG.fromFFIType hs_bindgen_e67495bf8fb75694_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 132:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_content_id =
+  hs_bindgen_e67495bf8fb75694
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_content_id@
+foreign import ccall safe "hs_bindgen_a61840a08f259978" hs_bindgen_a61840a08f259978_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_content_id@
+hs_bindgen_a61840a08f259978 ::
+     BG.Ptr Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_a61840a08f259978 =
+  BG.fromFFIType hs_bindgen_a61840a08f259978_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 135:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_content_id ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_content_id =
+  hs_bindgen_a61840a08f259978
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_cmpd_components@
+foreign import ccall safe "hs_bindgen_ecf5d96ae1394088" hs_bindgen_ecf5d96ae1394088_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_cmpd_components@
+hs_bindgen_ecf5d96ae1394088 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_ecf5d96ae1394088 =
+  BG.fromFFIType hs_bindgen_ecf5d96ae1394088_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_cmpd_components@
+
+    __defined at:__ @libheif\/heif_image_handle.h 142:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_cmpd_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_cmpd_components =
+  hs_bindgen_ecf5d96ae1394088
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type@
+foreign import ccall safe "hs_bindgen_c39b365ae6463988" hs_bindgen_c39b365ae6463988_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type@
+hs_bindgen_c39b365ae6463988 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_c39b365ae6463988 =
+  BG.fromFFIType hs_bindgen_c39b365ae6463988_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_image_handle.h 147:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_cmpd_component_type =
+  hs_bindgen_c39b365ae6463988
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type_uri@
+foreign import ccall safe "hs_bindgen_df63ee961806d207" hs_bindgen_df63ee961806d207_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_cmpd_component_type_uri@
+hs_bindgen_df63ee961806d207 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_df63ee961806d207 =
+  BG.fromFFIType hs_bindgen_df63ee961806d207_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type_uri@
+
+    __defined at:__ @libheif\/heif_image_handle.h 153:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type_uri ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_cmpd_component_type_uri =
+  hs_bindgen_df63ee961806d207
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_gimi_component_content_ids@
+foreign import ccall safe "hs_bindgen_6a5a1af4a8a1b33e" hs_bindgen_6a5a1af4a8a1b33e_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_has_gimi_component_content_ids@
+hs_bindgen_6a5a1af4a8a1b33e ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_6a5a1af4a8a1b33e =
+  BG.fromFFIType hs_bindgen_6a5a1af4a8a1b33e_base
+
+{-| __C declaration:__ @heif_image_handle_has_gimi_component_content_ids@
+
+    __defined at:__ @libheif\/heif_image_handle.h 160:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_gimi_component_content_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_gimi_component_content_ids =
+  hs_bindgen_6a5a1af4a8a1b33e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_component_content_id@
+foreign import ccall safe "hs_bindgen_a39896583d9d4999" hs_bindgen_a39896583d9d4999_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_gimi_component_content_id@
+hs_bindgen_a39896583d9d4999 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_a39896583d9d4999 =
+  BG.fromFFIType hs_bindgen_a39896583d9d4999_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 166:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_component_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_component_content_id =
+  hs_bindgen_a39896583d9d4999
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_component_content_id@
+foreign import ccall safe "hs_bindgen_dacd0cb9d512c937" hs_bindgen_dacd0cb9d512c937_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_gimi_component_content_id@
+hs_bindgen_dacd0cb9d512c937 ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_dacd0cb9d512c937 =
+  BG.fromFFIType hs_bindgen_dacd0cb9d512c937_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_component_content_id ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_component_content_id =
+  hs_bindgen_dacd0cb9d512c937
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_image_tiling@
+foreign import ccall safe "hs_bindgen_898454a03bf14ab5" hs_bindgen_898454a03bf14ab5_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_image_tiling@
+hs_bindgen_898454a03bf14ab5 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_image_tiling
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_898454a03bf14ab5 =
+  BG.fromFFIType hs_bindgen_898454a03bf14ab5_base
+
+{-| __C declaration:__ @heif_image_handle_get_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 67:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_image_tiling ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> BG.Ptr Heif_image_tiling
+     -- ^ __C declaration:__ @out_tiling@
+  -> IO Heif_error
+heif_image_handle_get_image_tiling =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \out_tiling2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_898454a03bf14ab5 handle0 process_image_transformations1 out_tiling2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_grid_image_tile_id@
+foreign import ccall safe "hs_bindgen_413be3dbf7649192" hs_bindgen_413be3dbf7649192_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_grid_image_tile_id@
+hs_bindgen_413be3dbf7649192 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_413be3dbf7649192 =
+  BG.fromFFIType hs_bindgen_413be3dbf7649192_base
+
+{-| __C declaration:__ @heif_image_handle_get_grid_image_tile_id@
+
+    __defined at:__ @libheif\/heif_tiling.h 74:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_grid_image_tile_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_tile_item_id@
+  -> IO Heif_error
+heif_image_handle_get_grid_image_tile_id =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \out_tile_item_id4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_413be3dbf7649192 handle0 process_image_transformations1 tile_x2 tile_y3 out_tile_item_id4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_decode_image_tile@
+foreign import ccall safe "hs_bindgen_f101837a6b5be78b" hs_bindgen_f101837a6b5be78b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_decode_image_tile@
+hs_bindgen_f101837a6b5be78b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f101837a6b5be78b =
+  BG.fromFFIType hs_bindgen_f101837a6b5be78b_base
+
+{-| __C declaration:__ @heif_image_handle_decode_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 86:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_decode_image_tile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> IO Heif_error
+heif_image_handle_decode_image_tile =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            \tile_x5 ->
+              \tile_y6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_f101837a6b5be78b in_handle0 out_img1 colorspace2 chroma3 options4 tile_x5 tile_y6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_grid@
+foreign import ccall safe "hs_bindgen_164a168311e3f152" hs_bindgen_164a168311e3f152_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_encode_grid@
+hs_bindgen_164a168311e3f152 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> HsBindgen.Runtime.LibC.Word16
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_164a168311e3f152 =
+  BG.fromFFIType hs_bindgen_164a168311e3f152_base
+
+{-| __C declaration:__ @heif_context_encode_grid@
+
+    __defined at:__ @libheif\/heif_tiling.h 109:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_grid ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @tiles@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @rows@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @columns@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @input_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_grid =
+  \ctx0 ->
+    \tiles1 ->
+      \rows2 ->
+        \columns3 ->
+          \encoder4 ->
+            \input_options5 ->
+              \out_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_164a168311e3f152 ctx0 tiles1 rows2 columns3 encoder4 input_options5 out_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_grid_image@
+foreign import ccall safe "hs_bindgen_7c8ae7abdb656611" hs_bindgen_7c8ae7abdb656611_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_grid_image@
+hs_bindgen_7c8ae7abdb656611 ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7c8ae7abdb656611 =
+  BG.fromFFIType hs_bindgen_7c8ae7abdb656611_base
+
+{-| __C declaration:__ @heif_context_add_grid_image@
+
+    __defined at:__ @libheif\/heif_tiling.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_grid_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_columns@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_rows@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @encoding_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_grid_image_handle@
+  -> IO Heif_error
+heif_context_add_grid_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \tile_columns3 ->
+          \tile_rows4 ->
+            \encoding_options5 ->
+              \out_grid_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_7c8ae7abdb656611 ctx0 image_width1 image_height2 tile_columns3 tile_rows4 encoding_options5 out_grid_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_image_tile@
+foreign import ccall safe "hs_bindgen_03065a3517ed4b58" hs_bindgen_03065a3517ed4b58_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_context_add_image_tile@
+hs_bindgen_03065a3517ed4b58 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_03065a3517ed4b58 =
+  BG.fromFFIType hs_bindgen_03065a3517ed4b58_base
+
+{-| __C declaration:__ @heif_context_add_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 127:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_image_tile ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @tiled_image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> IO Heif_error
+heif_context_add_image_tile =
+  \ctx0 ->
+    \tiled_image1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \image4 ->
+            \encoder5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_03065a3517ed4b58 ctx0 tiled_image1 tile_x2 tile_y3 image4 encoder5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_number_of_used_components@
+foreign import ccall safe "hs_bindgen_4c8ac68e14c896d9" hs_bindgen_4c8ac68e14c896d9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_number_of_used_components@
+hs_bindgen_4c8ac68e14c896d9 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_4c8ac68e14c896d9 =
+  BG.fromFFIType hs_bindgen_4c8ac68e14c896d9_base
+
+{-| __C declaration:__ @heif_image_get_number_of_used_components@
+
+    __defined at:__ @libheif\/heif_components.h 96:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_number_of_used_components ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_number_of_used_components =
+  hs_bindgen_4c8ac68e14c896d9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_used_component_ids@
+foreign import ccall safe "hs_bindgen_89f9c71152d117b0" hs_bindgen_89f9c71152d117b0_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_used_component_ids@
+hs_bindgen_89f9c71152d117b0 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_89f9c71152d117b0 =
+  BG.fromFFIType hs_bindgen_89f9c71152d117b0_base
+
+{-| __C declaration:__ @heif_image_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 101:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_get_used_component_ids =
+  hs_bindgen_89f9c71152d117b0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_channel@
+foreign import ccall safe "hs_bindgen_95adbac0d70eaf89" hs_bindgen_95adbac0d70eaf89_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_channel@
+hs_bindgen_95adbac0d70eaf89 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_channel
+hs_bindgen_95adbac0d70eaf89 =
+  BG.fromFFIType hs_bindgen_95adbac0d70eaf89_base
+
+{-| __C declaration:__ @heif_image_get_component_channel@
+
+    __defined at:__ @libheif\/heif_components.h 104:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_channel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_channel
+heif_image_get_component_channel =
+  hs_bindgen_95adbac0d70eaf89
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_width@
+foreign import ccall safe "hs_bindgen_2563edac91916690" hs_bindgen_2563edac91916690_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_width@
+hs_bindgen_2563edac91916690 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_2563edac91916690 =
+  BG.fromFFIType hs_bindgen_2563edac91916690_base
+
+{-| __C declaration:__ @heif_image_get_component_width@
+
+    __defined at:__ @libheif\/heif_components.h 107:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_width ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_width =
+  hs_bindgen_2563edac91916690
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_height@
+foreign import ccall safe "hs_bindgen_708542ac3769da22" hs_bindgen_708542ac3769da22_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_height@
+hs_bindgen_708542ac3769da22 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_708542ac3769da22 =
+  BG.fromFFIType hs_bindgen_708542ac3769da22_base
+
+{-| __C declaration:__ @heif_image_get_component_height@
+
+    __defined at:__ @libheif\/heif_components.h 110:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_height ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_height =
+  hs_bindgen_708542ac3769da22
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_24cce2d768157520" hs_bindgen_24cce2d768157520_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_bits_per_pixel@
+hs_bindgen_24cce2d768157520 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_24cce2d768157520 =
+  BG.fromFFIType hs_bindgen_24cce2d768157520_base
+
+{-| __C declaration:__ @heif_image_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_get_component_bits_per_pixel =
+  hs_bindgen_24cce2d768157520
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_type@
+foreign import ccall safe "hs_bindgen_1b3bc84f810e6784" hs_bindgen_1b3bc84f810e6784_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_type@
+hs_bindgen_1b3bc84f810e6784 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_1b3bc84f810e6784 =
+  BG.fromFFIType hs_bindgen_1b3bc84f810e6784_base
+
+{-| __C declaration:__ @heif_image_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 116:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_type ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_get_component_type =
+  hs_bindgen_1b3bc84f810e6784
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_datatype@
+foreign import ccall safe "hs_bindgen_3427ead05335058d" hs_bindgen_3427ead05335058d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_datatype@
+hs_bindgen_3427ead05335058d ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_3427ead05335058d =
+  BG.fromFFIType hs_bindgen_3427ead05335058d_base
+
+{-| __C declaration:__ @heif_image_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 121:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_datatype ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_get_component_datatype =
+  hs_bindgen_3427ead05335058d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_components@
+foreign import ccall safe "hs_bindgen_08e2626fbb4c7263" hs_bindgen_08e2626fbb4c7263_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_number_of_components@
+hs_bindgen_08e2626fbb4c7263 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_08e2626fbb4c7263 =
+  BG.fromFFIType hs_bindgen_08e2626fbb4c7263_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_components@
+
+    __defined at:__ @libheif\/heif_components.h 136:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_components =
+  hs_bindgen_08e2626fbb4c7263
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_used_component_ids@
+foreign import ccall safe "hs_bindgen_8f4c6fe1328df951" hs_bindgen_8f4c6fe1328df951_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_used_component_ids@
+hs_bindgen_8f4c6fe1328df951 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_8f4c6fe1328df951 =
+  BG.fromFFIType hs_bindgen_8f4c6fe1328df951_base
+
+{-| __C declaration:__ @heif_image_handle_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 142:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_handle_get_used_component_ids =
+  hs_bindgen_8f4c6fe1328df951
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_type@
+foreign import ccall safe "hs_bindgen_da1741b447f6b55f" hs_bindgen_da1741b447f6b55f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_type@
+hs_bindgen_da1741b447f6b55f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_da1741b447f6b55f =
+  BG.fromFFIType hs_bindgen_da1741b447f6b55f_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 145:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_component_type =
+  hs_bindgen_da1741b447f6b55f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_bits_per_pixel@
+foreign import ccall safe "hs_bindgen_c06a69cd444c0e91" hs_bindgen_c06a69cd444c0e91_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_bits_per_pixel@
+hs_bindgen_c06a69cd444c0e91 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_c06a69cd444c0e91 =
+  BG.fromFFIType hs_bindgen_c06a69cd444c0e91_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_handle_get_component_bits_per_pixel =
+  hs_bindgen_c06a69cd444c0e91
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_datatype@
+foreign import ccall safe "hs_bindgen_246e8aac86313c19" hs_bindgen_246e8aac86313c19_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_component_datatype@
+hs_bindgen_246e8aac86313c19 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_246e8aac86313c19 =
+  BG.fromFFIType hs_bindgen_246e8aac86313c19_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 151:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_datatype ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_handle_get_component_datatype =
+  hs_bindgen_246e8aac86313c19
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_component@
+foreign import ccall safe "hs_bindgen_58211ee9d9aaff0b" hs_bindgen_58211ee9d9aaff0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Word16
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_add_component@
+hs_bindgen_58211ee9d9aaff0b ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word16
+  -> Heif_component_datatype
+  -> BG.CInt
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_58211ee9d9aaff0b =
+  BG.fromFFIType hs_bindgen_58211ee9d9aaff0b_base
+
+{-| __C declaration:__ @heif_image_add_component@
+
+    __defined at:__ @libheif\/heif_components.h 157:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_component ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @component_type@
+  -> Heif_component_datatype
+     -- ^ __C declaration:__ @datatype@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_id@
+  -> IO Heif_error
+heif_image_add_component =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        \component_type3 ->
+          \datatype4 ->
+            \bit_depth5 ->
+              \out_component_id6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_58211ee9d9aaff0b image0 width1 height2 component_type3 datatype4 bit_depth5 out_component_id6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_readonly@
+foreign import ccall safe "hs_bindgen_f3b3dd6d12db8090" hs_bindgen_f3b3dd6d12db8090_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_readonly@
+hs_bindgen_f3b3dd6d12db8090 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_f3b3dd6d12db8090 =
+  BG.fromFFIType hs_bindgen_f3b3dd6d12db8090_base
+
+{-| __C declaration:__ @heif_image_get_component_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 168:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component_readonly =
+  hs_bindgen_f3b3dd6d12db8090
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component@
+foreign import ccall safe "hs_bindgen_797598038668dd27" hs_bindgen_797598038668dd27_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component@
+hs_bindgen_797598038668dd27 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_797598038668dd27 =
+  BG.fromFFIType hs_bindgen_797598038668dd27_base
+
+{-| __C declaration:__ @heif_image_get_component@
+
+    __defined at:__ @libheif\/heif_components.h 171:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component =
+  hs_bindgen_797598038668dd27
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16_readonly@
+foreign import ccall safe "hs_bindgen_dd2caf5774deaa63" hs_bindgen_dd2caf5774deaa63_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16_readonly@
+hs_bindgen_dd2caf5774deaa63 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_dd2caf5774deaa63 =
+  BG.fromFFIType hs_bindgen_dd2caf5774deaa63_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 180:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16_readonly =
+  hs_bindgen_dd2caf5774deaa63
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16@
+foreign import ccall safe "hs_bindgen_c24b1fb221a59544" hs_bindgen_c24b1fb221a59544_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint16@
+hs_bindgen_c24b1fb221a59544 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_c24b1fb221a59544 =
+  BG.fromFFIType hs_bindgen_c24b1fb221a59544_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16@
+
+    __defined at:__ @libheif\/heif_components.h 183:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16 =
+  hs_bindgen_c24b1fb221a59544
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32_readonly@
+foreign import ccall safe "hs_bindgen_f7092ec4941635e4" hs_bindgen_f7092ec4941635e4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32_readonly@
+hs_bindgen_f7092ec4941635e4 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_f7092ec4941635e4 =
+  BG.fromFFIType hs_bindgen_f7092ec4941635e4_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 186:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32_readonly =
+  hs_bindgen_f7092ec4941635e4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32@
+foreign import ccall safe "hs_bindgen_b69a8682c27eebbe" hs_bindgen_b69a8682c27eebbe_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint32@
+hs_bindgen_b69a8682c27eebbe ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_b69a8682c27eebbe =
+  BG.fromFFIType hs_bindgen_b69a8682c27eebbe_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32@
+
+    __defined at:__ @libheif\/heif_components.h 189:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32 =
+  hs_bindgen_b69a8682c27eebbe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64_readonly@
+foreign import ccall safe "hs_bindgen_21af790d31a25679" hs_bindgen_21af790d31a25679_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64_readonly@
+hs_bindgen_21af790d31a25679 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_21af790d31a25679 =
+  BG.fromFFIType hs_bindgen_21af790d31a25679_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 192:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64_readonly =
+  hs_bindgen_21af790d31a25679
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64@
+foreign import ccall safe "hs_bindgen_052a1b04a5028cc7" hs_bindgen_052a1b04a5028cc7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_uint64@
+hs_bindgen_052a1b04a5028cc7 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_052a1b04a5028cc7 =
+  BG.fromFFIType hs_bindgen_052a1b04a5028cc7_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64@
+
+    __defined at:__ @libheif\/heif_components.h 195:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64 =
+  hs_bindgen_052a1b04a5028cc7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8_readonly@
+foreign import ccall safe "hs_bindgen_0647bc125c518139" hs_bindgen_0647bc125c518139_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8_readonly@
+hs_bindgen_0647bc125c518139 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_0647bc125c518139 =
+  BG.fromFFIType hs_bindgen_0647bc125c518139_base
+
+{-| __C declaration:__ @heif_image_get_component_int8_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 198:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8_readonly =
+  hs_bindgen_0647bc125c518139
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8@
+foreign import ccall safe "hs_bindgen_2b6baabe97efc9ee" hs_bindgen_2b6baabe97efc9ee_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int8@
+hs_bindgen_2b6baabe97efc9ee ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_2b6baabe97efc9ee =
+  BG.fromFFIType hs_bindgen_2b6baabe97efc9ee_base
+
+{-| __C declaration:__ @heif_image_get_component_int8@
+
+    __defined at:__ @libheif\/heif_components.h 201:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8 =
+  hs_bindgen_2b6baabe97efc9ee
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16_readonly@
+foreign import ccall safe "hs_bindgen_05cd3db068fb993a" hs_bindgen_05cd3db068fb993a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16_readonly@
+hs_bindgen_05cd3db068fb993a ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_05cd3db068fb993a =
+  BG.fromFFIType hs_bindgen_05cd3db068fb993a_base
+
+{-| __C declaration:__ @heif_image_get_component_int16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 204:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16_readonly =
+  hs_bindgen_05cd3db068fb993a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16@
+foreign import ccall safe "hs_bindgen_3a8ffa58a1670f46" hs_bindgen_3a8ffa58a1670f46_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int16@
+hs_bindgen_3a8ffa58a1670f46 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_3a8ffa58a1670f46 =
+  BG.fromFFIType hs_bindgen_3a8ffa58a1670f46_base
+
+{-| __C declaration:__ @heif_image_get_component_int16@
+
+    __defined at:__ @libheif\/heif_components.h 207:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16 =
+  hs_bindgen_3a8ffa58a1670f46
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32_readonly@
+foreign import ccall safe "hs_bindgen_f59a29fdf460e965" hs_bindgen_f59a29fdf460e965_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32_readonly@
+hs_bindgen_f59a29fdf460e965 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_f59a29fdf460e965 =
+  BG.fromFFIType hs_bindgen_f59a29fdf460e965_base
+
+{-| __C declaration:__ @heif_image_get_component_int32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 210:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32_readonly =
+  hs_bindgen_f59a29fdf460e965
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32@
+foreign import ccall safe "hs_bindgen_80e3e994059d8dc9" hs_bindgen_80e3e994059d8dc9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int32@
+hs_bindgen_80e3e994059d8dc9 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_80e3e994059d8dc9 =
+  BG.fromFFIType hs_bindgen_80e3e994059d8dc9_base
+
+{-| __C declaration:__ @heif_image_get_component_int32@
+
+    __defined at:__ @libheif\/heif_components.h 213:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32 =
+  hs_bindgen_80e3e994059d8dc9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64_readonly@
+foreign import ccall safe "hs_bindgen_9f7c83bd2e97ad43" hs_bindgen_9f7c83bd2e97ad43_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64_readonly@
+hs_bindgen_9f7c83bd2e97ad43 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_9f7c83bd2e97ad43 =
+  BG.fromFFIType hs_bindgen_9f7c83bd2e97ad43_base
+
+{-| __C declaration:__ @heif_image_get_component_int64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 216:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64_readonly =
+  hs_bindgen_9f7c83bd2e97ad43
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64@
+foreign import ccall safe "hs_bindgen_fee1de1a1474b6a3" hs_bindgen_fee1de1a1474b6a3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_int64@
+hs_bindgen_fee1de1a1474b6a3 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_fee1de1a1474b6a3 =
+  BG.fromFFIType hs_bindgen_fee1de1a1474b6a3_base
+
+{-| __C declaration:__ @heif_image_get_component_int64@
+
+    __defined at:__ @libheif\/heif_components.h 219:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64 =
+  hs_bindgen_fee1de1a1474b6a3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32_readonly@
+foreign import ccall safe "hs_bindgen_05ed1c08b5116807" hs_bindgen_05ed1c08b5116807_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32_readonly@
+hs_bindgen_05ed1c08b5116807 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CFloat)
+hs_bindgen_05ed1c08b5116807 =
+  BG.fromFFIType hs_bindgen_05ed1c08b5116807_base
+
+{-| __C declaration:__ @heif_image_get_component_float32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 222:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CFloat)
+heif_image_get_component_float32_readonly =
+  hs_bindgen_05ed1c08b5116807
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32@
+foreign import ccall safe "hs_bindgen_ad009c9ed1ffc812" hs_bindgen_ad009c9ed1ffc812_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float32@
+hs_bindgen_ad009c9ed1ffc812 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CFloat)
+hs_bindgen_ad009c9ed1ffc812 =
+  BG.fromFFIType hs_bindgen_ad009c9ed1ffc812_base
+
+{-| __C declaration:__ @heif_image_get_component_float32@
+
+    __defined at:__ @libheif\/heif_components.h 225:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CFloat)
+heif_image_get_component_float32 =
+  hs_bindgen_ad009c9ed1ffc812
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64_readonly@
+foreign import ccall safe "hs_bindgen_de66df56dbf48814" hs_bindgen_de66df56dbf48814_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64_readonly@
+hs_bindgen_de66df56dbf48814 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CDouble)
+hs_bindgen_de66df56dbf48814 =
+  BG.fromFFIType hs_bindgen_de66df56dbf48814_base
+
+{-| __C declaration:__ @heif_image_get_component_float64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 228:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CDouble)
+heif_image_get_component_float64_readonly =
+  hs_bindgen_de66df56dbf48814
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64@
+foreign import ccall safe "hs_bindgen_0ad1b60eeb8d63bd" hs_bindgen_0ad1b60eeb8d63bd_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_float64@
+hs_bindgen_0ad1b60eeb8d63bd ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CDouble)
+hs_bindgen_0ad1b60eeb8d63bd =
+  BG.fromFFIType hs_bindgen_0ad1b60eeb8d63bd_base
+
+{-| __C declaration:__ @heif_image_get_component_float64@
+
+    __defined at:__ @libheif\/heif_components.h 231:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CDouble)
+heif_image_get_component_float64 =
+  hs_bindgen_0ad1b60eeb8d63bd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32_readonly@
+foreign import ccall safe "hs_bindgen_ac4a57dd34ca375a" hs_bindgen_ac4a57dd34ca375a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32_readonly@
+hs_bindgen_ac4a57dd34ca375a ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex32)
+hs_bindgen_ac4a57dd34ca375a =
+  BG.fromFFIType hs_bindgen_ac4a57dd34ca375a_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 234:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex32)
+heif_image_get_component_complex32_readonly =
+  hs_bindgen_ac4a57dd34ca375a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32@
+foreign import ccall safe "hs_bindgen_cfa79a05b01a8fc7" hs_bindgen_cfa79a05b01a8fc7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex32@
+hs_bindgen_cfa79a05b01a8fc7 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex32)
+hs_bindgen_cfa79a05b01a8fc7 =
+  BG.fromFFIType hs_bindgen_cfa79a05b01a8fc7_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 237:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex32)
+heif_image_get_component_complex32 =
+  hs_bindgen_cfa79a05b01a8fc7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64_readonly@
+foreign import ccall safe "hs_bindgen_e0f8d25e700e39b7" hs_bindgen_e0f8d25e700e39b7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64_readonly@
+hs_bindgen_e0f8d25e700e39b7 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex64)
+hs_bindgen_e0f8d25e700e39b7 =
+  BG.fromFFIType hs_bindgen_e0f8d25e700e39b7_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 240:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex64)
+heif_image_get_component_complex64_readonly =
+  hs_bindgen_e0f8d25e700e39b7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64@
+foreign import ccall safe "hs_bindgen_378fc308bf4e003a" hs_bindgen_378fc308bf4e003a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_component_complex64@
+hs_bindgen_378fc308bf4e003a ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex64)
+hs_bindgen_378fc308bf4e003a =
+  BG.fromFFIType hs_bindgen_378fc308bf4e003a_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 243:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex64)
+heif_image_get_component_complex64 =
+  hs_bindgen_378fc308bf4e003a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_gimi_component_content_id@
+foreign import ccall safe "hs_bindgen_430d40ab533188ef" hs_bindgen_430d40ab533188ef_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_gimi_component_content_id@
+hs_bindgen_430d40ab533188ef ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_430d40ab533188ef =
+  BG.fromFFIType hs_bindgen_430d40ab533188ef_base
+
+{-| __C declaration:__ @heif_image_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_components.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_gimi_component_content_id ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO Heif_error
+heif_image_set_gimi_component_content_id =
+  \x0 ->
+    \component_id1 ->
+      \content_id2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_430d40ab533188ef x0 component_id1 content_id2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_dc0b57c80dcd5111" hs_bindgen_dc0b57c80dcd5111_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_get_omaf_image_projection@
+hs_bindgen_dc0b57c80dcd5111 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_omaf_image_projection
+hs_bindgen_dc0b57c80dcd5111 =
+  BG.fromFFIType hs_bindgen_dc0b57c80dcd5111_base
+
+{-| __C declaration:__ @heif_image_handle_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 83:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_omaf_image_projection
+heif_image_handle_get_omaf_image_projection =
+  hs_bindgen_dc0b57c80dcd5111
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_c2c7dbcbc67f17cb" hs_bindgen_c2c7dbcbc67f17cb_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_handle_set_omaf_image_projection@
+hs_bindgen_c2c7dbcbc67f17cb ::
+     BG.Ptr Heif_image_handle
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_c2c7dbcbc67f17cb =
+  BG.fromFFIType hs_bindgen_c2c7dbcbc67f17cb_base
+
+{-| __C declaration:__ @heif_image_handle_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 86:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_omaf_image_projection ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_handle_set_omaf_image_projection =
+  hs_bindgen_c2c7dbcbc67f17cb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_78b31f0f9d6a835b" hs_bindgen_78b31f0f9d6a835b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_get_omaf_image_projection@
+hs_bindgen_78b31f0f9d6a835b ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_omaf_image_projection
+hs_bindgen_78b31f0f9d6a835b =
+  BG.fromFFIType hs_bindgen_78b31f0f9d6a835b_base
+
+{-| __C declaration:__ @heif_image_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 94:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_omaf_image_projection
+heif_image_get_omaf_image_projection =
+  hs_bindgen_78b31f0f9d6a835b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_omaf_image_projection@
+foreign import ccall safe "hs_bindgen_88e80c816c94bac9" hs_bindgen_88e80c816c94bac9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Safe_heif_image_set_omaf_image_projection@
+hs_bindgen_88e80c816c94bac9 ::
+     BG.Ptr Heif_image
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_88e80c816c94bac9 =
+  BG.fromFFIType hs_bindgen_88e80c816c94bac9_base
+
+{-| __C declaration:__ @heif_image_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 97:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_omaf_image_projection ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_set_omaf_image_projection =
+  hs_bindgen_88e80c816c94bac9
diff --git a/src-wasm/Codec/HEIF/Bindings/Generated/Unsafe.hs b/src-wasm/Codec/HEIF/Bindings/Generated/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/src-wasm/Codec/HEIF/Bindings/Generated/Unsafe.hs
@@ -0,0 +1,11179 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_HADDOCK prune #-}
+
+module Codec.HEIF.Bindings.Generated.Unsafe
+    ( Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number_major
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number_minor
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_version_number_maintenance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_string_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_init
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_deinit
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_load_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_load_plugins
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_unload_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_free_plugin_directories
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_register_decoder_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_register_encoder_plugin
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_register_decoder
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_colorspace
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_chroma_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_primary_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_primary_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_crop
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_extract_area
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_bits_per_pixel_range
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_channel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane_readonly2
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_plane2
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_scale_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_extend_to_size_fill_with_zero
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_decoding_warnings
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_decoding_warning
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_create
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_plane
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_plane_safe
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_extend_padding_to_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_set_defaults
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_ext_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_ext_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_color_conversion_options_ext_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_set_color_primaries
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_set_transfer_characteristics
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_set_matrix_coefficients
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_nclx_color_profile_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_color_profile_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_raw_color_profile_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_raw_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_nclx_color_profile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_content_light_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_mastering_display_colour_volume
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_ambient_viewing_environment
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_nominal_diffuse_white_luminance
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_mastering_display_colour_volume_decode
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_read_main_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_read_minor_version_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_fourcc_to_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_brand_to_fourcc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_has_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_list_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_free_list_of_compatible_brands
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_file_mime_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_check_filetype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_has_compatible_filetype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_check_jpeg_filetype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_main_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_metadata_compression_method_supported
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_metadata_blocks
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_metadata_block_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_content_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_size
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_metadata_item_uri_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_exif_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_XMP_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_XMP_metadata2
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_generic_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_generic_uri_metadata
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_depth_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_depth_images
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_depth_image_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_depth_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_depth_representation_info_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_depth_image_representation_info
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_thumbnails
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_thumbnail_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_thumbnail
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_encode_thumbnail
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_assign_thumbnail
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_auxiliary_images
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_list_of_auxiliary_image_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_release_auxiliary_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_auxiliary_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_free_auxiliary_types
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_entity_groups
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_entity_groups_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_global_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_disabled_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_security_limits
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_maximum_image_size_limit
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_file
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_memory
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_memory_without_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_read_from_reader
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_number_of_top_level_images
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_is_top_level_image_ID
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_list_of_top_level_image_IDs
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_primary_image_ID
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_primary_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_image_handle
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_debug_dump_boxes_to_file
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_write_mini_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_write_to_file
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_write
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_have_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_get_compression_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supports_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supports_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_encoder
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_encoder_for_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_lossy_quality
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_lossless
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_logging_level
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_list_parameters
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_valid_integer_range
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_valid_integer_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_get_valid_string_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter_integer
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_integer_valid_range
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter_boolean
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter_string
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter_string
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_string_valid_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_parameter_integer_valid_values
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_set_parameter
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_get_parameter
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_has_default
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_orientation_concat
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoding_options_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_encode_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_overlay_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_primary_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_major_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_compatible_brand
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_unif
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supportes_lossy_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_encoder_descriptor_supportes_lossless_compression
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_encoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_set_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_get_max_decoding_threads
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_have_decoder_for_format
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoding_options_alloc
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoding_options_copy
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoding_options_free
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_get_decoder_descriptors
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoder_descriptor_get_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decoder_descriptor_get_id_name
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_decode_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_release
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_is_primary_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_item_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_alpha_channel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_is_premultiplied_alpha
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_luma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_chroma_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_preferred_decoding_colorspace
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_ispe_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_ispe_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_pixel_aspect_ratio
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_context
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_gimi_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_cmpd_components
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_cmpd_component_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_cmpd_component_type_uri
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_has_gimi_component_content_ids
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_image_tiling
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_grid_image_tile_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_decode_image_tile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_encode_grid
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_grid_image
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_context_add_image_tile
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_number_of_used_components
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_channel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_width
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_height
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_number_of_components
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_used_component_ids
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_component_type
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_component_bits_per_pixel
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_component_datatype
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_add_component
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint16_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint16
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_uint64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int8_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int8
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int16_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int16
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_int64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_float64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex32_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex32
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex64_readonly
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_component_complex64
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_gimi_component_content_id
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_handle_set_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_get_omaf_image_projection
+    , Codec.HEIF.Bindings.Generated.Unsafe.heif_image_set_omaf_image_projection
+    )
+  where
+
+import qualified HsBindgen.Runtime.ConstantArray as CA
+import qualified HsBindgen.Runtime.IsArray as IsA
+import qualified HsBindgen.Runtime.LibC
+import qualified HsBindgen.Runtime.PtrConst as PtrConst
+import qualified HsBindgen.Runtime.Support as BG
+import qualified HsBindgen.Runtime.Support.CAPI
+import Codec.HEIF.Bindings.Generated
+
+$(HsBindgen.Runtime.Support.CAPI.addCSource (HsBindgen.Runtime.Support.CAPI.unlines
+  [ "#include <libheif/heif.h>"
+  , "char const *hs_bindgen_e3bffa314a90058b (void)"
+  , "{"
+  , "  return (heif_get_version)();"
+  , "}"
+  , "uint32_t hs_bindgen_5ac80c1443aa4448 (void)"
+  , "{"
+  , "  return (heif_get_version_number)();"
+  , "}"
+  , "signed int hs_bindgen_55e4521e93626126 (void)"
+  , "{"
+  , "  return (heif_get_version_number_major)();"
+  , "}"
+  , "signed int hs_bindgen_145a4f240219e0a9 (void)"
+  , "{"
+  , "  return (heif_get_version_number_minor)();"
+  , "}"
+  , "signed int hs_bindgen_58fbe8d31194675b (void)"
+  , "{"
+  , "  return (heif_get_version_number_maintenance)();"
+  , "}"
+  , "void hs_bindgen_5305381a834858f6 ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_string_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_c6cf67a7df25bdec ("
+  , "  heif_init_params *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_init)(arg1);"
+  , "}"
+  , "void hs_bindgen_e1615a4fb170ecfe (void)"
+  , "{"
+  , "  (heif_deinit)();"
+  , "}"
+  , "void hs_bindgen_7e4ae8064e7fa414 ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_load_plugin)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8d1c6ca731acead9 ("
+  , "  char const *arg1,"
+  , "  heif_plugin_info const **arg2,"
+  , "  signed int *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_load_plugins)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_538500d1fad0b893 ("
+  , "  heif_plugin_info const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_unload_plugin)(arg1);"
+  , "}"
+  , "char const *const *hs_bindgen_9ed471f495e48c49 (void)"
+  , "{"
+  , "  return (heif_get_plugin_directories)();"
+  , "}"
+  , "void hs_bindgen_9d2405417393e657 ("
+  , "  char const *const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_plugin_directories)(arg1);"
+  , "}"
+  , "void hs_bindgen_835dc3bcc6b1f285 ("
+  , "  heif_decoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_decoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_12b9be4adedf03bd ("
+  , "  heif_encoder_plugin const *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  *arg2 = (heif_register_encoder_plugin)(arg1);"
+  , "}"
+  , "void hs_bindgen_5f60338dadf21f69 ("
+  , "  heif_context *arg1,"
+  , "  heif_decoder_plugin const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_register_decoder)(arg1, arg2);"
+  , "}"
+  , "heif_colorspace hs_bindgen_6eefe02d29f57a47 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_colorspace)(arg1);"
+  , "}"
+  , "heif_chroma hs_bindgen_53faf2b1fc8a2156 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_chroma_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e633bfc0672b32e7 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_width)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_c0cbbfe9b797da51 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_c79ddf7426928ec2 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fc1202e0c5cd3d09 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_primary_height)(arg1);"
+  , "}"
+  , "void hs_bindgen_298d1d9ee3c4f3f2 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_crop)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_9fd687f6d6aa62dc ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_image **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_extract_area)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "signed int hs_bindgen_4c57056151b51120 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_740f2cdd311ad0b7 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_bits_per_pixel_range)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_682212294f338906 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_channel)(arg1, arg2);"
+  , "}"
+  , "uint8_t const *hs_bindgen_5037c6505fb52d39 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_1f037f5c1d43593b ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t const *hs_bindgen_f7454f02bed93ef8 ("
+  , "  heif_image const *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane_readonly2)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_4a13b7033c17548d ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_plane2)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_cd8be1577d7b3a2b ("
+  , "  heif_image const *arg1,"
+  , "  heif_image **arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  heif_scaling_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_scale_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_f994012d02172f02 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_to_size_fill_with_zero)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_591b95f3625fb1f3 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_decoding_warnings)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_e0050d3b1bf5d002 ("
+  , "  heif_image *arg1,"
+  , "  heif_error *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_add_decoding_warning)(arg1, *arg2);"
+  , "}"
+  , "void hs_bindgen_f8b0209a7ec37965 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_release)(arg1);"
+  , "}"
+  , "void hs_bindgen_58b6b25baf69f6bb ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_64ef88c5f4227050 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_1021dce469e1b127 ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e6de35774b2629f8 ("
+  , "  signed int arg1,"
+  , "  signed int arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_image **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_create)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_ded84e4fb2693ccb ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_add_plane)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_14c07f3c95c4d2a1 ("
+  , "  heif_image *arg1,"
+  , "  heif_channel arg2,"
+  , "  signed int arg3,"
+  , "  signed int arg4,"
+  , "  signed int arg5,"
+  , "  heif_security_limits const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_image_add_plane_safe)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_0cb37fdfaf80d23d ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_premultiplied_alpha)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_95281e4bf5195e90 ("
+  , "  heif_image *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "void hs_bindgen_e7bd2b9f79bce485 ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_extend_padding_to_size)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_fa886f69180c9b13 ("
+  , "  heif_color_conversion_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_set_defaults)(arg1);"
+  , "}"
+  , "heif_color_conversion_options_ext *hs_bindgen_3498384f565db0bf (void)"
+  , "{"
+  , "  return (heif_color_conversion_options_ext_alloc)();"
+  , "}"
+  , "void hs_bindgen_a5a41101b51031e5 ("
+  , "  heif_color_conversion_options_ext *arg1,"
+  , "  heif_color_conversion_options_ext const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b151c814d468583c ("
+  , "  heif_color_conversion_options_ext *arg1"
+  , ")"
+  , "{"
+  , "  (heif_color_conversion_options_ext_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_3d62c61f9da0c21f ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_e524b9c333f3e6f9 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_df7ddd74d35a1d70 ("
+  , "  heif_image_handle const *arg1,"
+  , "  void *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_9bd2c76f24a46069 ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_color_primaries)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_55f3e8ab84a6b8ef ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_transfer_characteristics)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8e5fd31a41ae1cdd ("
+  , "  heif_color_profile_nclx *arg1,"
+  , "  uint16_t arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_nclx_color_profile_set_matrix_coefficients)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8546dd13ed062f1c ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "heif_color_profile_nclx *hs_bindgen_ae248e74768fcbe7 (void)"
+  , "{"
+  , "  return (heif_nclx_color_profile_alloc)();"
+  , "}"
+  , "void hs_bindgen_e5cdf6772bff08ab ("
+  , "  heif_color_profile_nclx *arg1"
+  , ")"
+  , "{"
+  , "  (heif_nclx_color_profile_free)(arg1);"
+  , "}"
+  , "heif_color_profile_type hs_bindgen_698c659a583ecfcf ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_color_profile_type)(arg1);"
+  , "}"
+  , "size_t hs_bindgen_899b31b8f4d0b139 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_raw_color_profile_size)(arg1);"
+  , "}"
+  , "void hs_bindgen_dd6958f1991911be ("
+  , "  heif_image const *arg1,"
+  , "  void *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_raw_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_066842cfad9d7788 ("
+  , "  heif_image const *arg1,"
+  , "  heif_color_profile_nclx **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_get_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_e39706130308fb22 ("
+  , "  heif_image *arg1,"
+  , "  char const *arg2,"
+  , "  void const *arg3,"
+  , "  size_t const arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_image_set_raw_color_profile)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_c4e7050d9db10e9a ("
+  , "  heif_image *arg1,"
+  , "  heif_color_profile_nclx const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_set_nclx_color_profile)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_be6ee6da0546d110 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_content_light_level)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d7e2ebf32ac53fac ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_content_light_level)(arg1);"
+  , "}"
+  , "void hs_bindgen_9d82218a99d2d392 ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_b6298e4a5fe44f46 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_1b896f9f9ad9433d ("
+  , "  heif_image const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_0fe67c68b9c30832 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_content_light_level const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_content_light_level)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_082b5ffbdb05d279 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_fbcaca522f00d549 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_mastering_display_colour_volume)(arg1);"
+  , "}"
+  , "void hs_bindgen_26de052b332f6318 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_e82eb51924715179 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_ffad573ff1d2e1b4 ("
+  , "  heif_image const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_e55ed00c652e3fea ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_mastering_display_colour_volume const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_mastering_display_colour_volume)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d6b8dd7ef6008c82 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_e0f6f90369de190f ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_ambient_viewing_environment)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_03f4b4f3734ca3eb ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_dd1f30e9a69dbd49 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_81030adb575665fe ("
+  , "  heif_image const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_13c2a075b1cf7bd8 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_ambient_viewing_environment const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_ambient_viewing_environment)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7dd186fbfd6b464a ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_edcedf5e2ff9fd31 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_a37f8bb02787e019 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_11ca3842cb553804 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "uint32_t hs_bindgen_24cee4290ffa0920 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_nominal_diffuse_white_luminance)(arg1);"
+  , "}"
+  , "void hs_bindgen_4e00c9ca70a6fd07 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_nominal_diffuse_white_luminance)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_9c0e93af53ba356a ("
+  , "  heif_mastering_display_colour_volume const *arg1,"
+  , "  heif_decoded_mastering_display_colour_volume *arg2,"
+  , "  struct heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_mastering_display_colour_volume_decode)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_cb3b0a44d4aad6a4 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_main_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_46a8a8e54f91d91a ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_read_minor_version_brand)(arg1, arg2);"
+  , "}"
+  , "heif_brand2 hs_bindgen_ec7439ef34aa82ca ("
+  , "  char const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_fourcc_to_brand)(arg1);"
+  , "}"
+  , "void hs_bindgen_f3063904ab900b28 ("
+  , "  heif_brand2 arg1,"
+  , "  char *arg2"
+  , ")"
+  , "{"
+  , "  (heif_brand_to_fourcc)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_f9382ea7accf2318 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_has_compatible_brand)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_db37863ff0bc30e9 ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_brand2 **arg3,"
+  , "  signed int *arg4,"
+  , "  struct heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_list_compatible_brands)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_0bf00e8ab2fd5553 ("
+  , "  heif_brand2 *arg1"
+  , ")"
+  , "{"
+  , "  (heif_free_list_of_compatible_brands)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_083f69c89da808ac ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_get_file_mime_type)(arg1, arg2);"
+  , "}"
+  , "enum heif_filetype_result hs_bindgen_2c11695134f8ae7a ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_filetype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_2e7bbe04a9324a3c ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_has_compatible_filetype)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_38f46e68912e8abc ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_check_jpeg_filetype)(arg1, arg2);"
+  , "}"
+  , "enum heif_brand hs_bindgen_fdd065dc05fa657e ("
+  , "  uint8_t const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_main_brand)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_99b5ad50a3519f42 ("
+  , "  enum heif_metadata_compression arg1"
+  , ")"
+  , "{"
+  , "  return (heif_metadata_compression_method_supported)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ed1b3c7730ce9adc ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_metadata_blocks)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_ff545c340ebcc9e1 ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const *arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_metadata_block_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_5b79154e3bf116be ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_93d17d0350046b0f ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_content_type)(arg1, arg2);"
+  , "}"
+  , "size_t hs_bindgen_e0031552d6b50a40 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_size)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_bf83eab617592597 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_metadata)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_2bda88c8a294819f ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_metadata_item_uri_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_8cc5bc61773d6f99 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_exif_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_43ab7c8e6e51b6f6 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_add_XMP_metadata)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_690fe9f2d3331fbe ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  enum heif_metadata_compression arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_add_XMP_metadata2)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_43798e780a11e8ae ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  char const *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "void hs_bindgen_6f6e7853ece6bfaf ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  void const *arg3,"
+  , "  signed int arg4,"
+  , "  char const *arg5,"
+  , "  heif_item_id *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_generic_uri_metadata)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "signed int hs_bindgen_ef96d03b5ecf889c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_depth_image)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_4c02e1b7273148ce ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_depth_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_46dac6a04d58d802 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_depth_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_530a9c047a8545b8 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_depth_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_029d797a2655b5de ("
+  , "  heif_depth_representation_info const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_depth_representation_info_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_a73687120cab3c71 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_depth_representation_info const **arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_depth_image_representation_info)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_3b94607899266366 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_thumbnails)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_12436f324557ab0b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_thumbnail_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_cbd2548e91d4b099 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d7fa83d73e654632 ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_encoder *arg4,"
+  , "  heif_encoding_options const *arg5,"
+  , "  signed int arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_thumbnail)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_b6b843db159f83b1 ("
+  , "  struct heif_context *arg1,"
+  , "  heif_image_handle const *arg2,"
+  , "  heif_image_handle const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_assign_thumbnail)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_a07388633c39d124 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_auxiliary_images)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_7826be70e6d91574 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  heif_item_id *arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_list_of_auxiliary_image_IDs)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_f6bf51713dbde24e ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_image_handle_get_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_03aca62850d5d65f ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release_auxiliary_type)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_38168275ff826772 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_auxiliary_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_6f5a921cd33ac8ee ("
+  , "  heif_image_handle const *arg1,"
+  , "  char const **arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_free_auxiliary_types)(arg1, arg2);"
+  , "}"
+  , "heif_entity_group *hs_bindgen_ae6bb46cb10ef49b ("
+  , "  heif_context const *arg1,"
+  , "  uint32_t arg2,"
+  , "  heif_item_id arg3,"
+  , "  signed int *arg4"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_entity_groups)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_ccbaf41a25b5fc17 ("
+  , "  heif_entity_group *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_entity_groups_release)(arg1, arg2);"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_0bd62767a85d72e4 (void)"
+  , "{"
+  , "  return (heif_get_global_security_limits)();"
+  , "}"
+  , "heif_security_limits const *hs_bindgen_1898bc2f36224985 (void)"
+  , "{"
+  , "  return (heif_get_disabled_security_limits)();"
+  , "}"
+  , "heif_security_limits *hs_bindgen_2a5ca5c742b8d454 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_security_limits)(arg1);"
+  , "}"
+  , "void hs_bindgen_8ac69b76d966cf30 ("
+  , "  heif_context *arg1,"
+  , "  heif_security_limits const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_security_limits)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_63f91ddf3fdf9157 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_maximum_image_size_limit)(arg1, arg2);"
+  , "}"
+  , "heif_context *hs_bindgen_5072fed60822f439 (void)"
+  , "{"
+  , "  return (heif_context_alloc)();"
+  , "}"
+  , "void hs_bindgen_d4224d2b144531cf ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  (heif_context_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_6a121ee485ba22bf ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_reading_options const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_read_from_file)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_174457bbb7c8bbd2 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_fcf75bd82a2068c9 ("
+  , "  heif_context *arg1,"
+  , "  void const *arg2,"
+  , "  size_t arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_memory_without_copy)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_30a7fb98ea82638e ("
+  , "  heif_context *arg1,"
+  , "  heif_reader const *arg2,"
+  , "  void *arg3,"
+  , "  heif_reading_options const *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_context_read_from_reader)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_d022237e551807f9 ("
+  , "  heif_context *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_number_of_top_level_images)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_42c1e4344d442b11 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2"
+  , ")"
+  , "{"
+  , "  return (heif_context_is_top_level_image_ID)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_563deefc7bdc5b71 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_list_of_top_level_image_IDs)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e211461a4b3d3f0b ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_ID)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_47dc3223f11aefec ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_get_primary_image_handle)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b49b56d6f03fcaf8 ("
+  , "  heif_context *arg1,"
+  , "  heif_item_id arg2,"
+  , "  heif_image_handle **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_image_handle)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_8d375594ebb1037b ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_debug_dump_boxes_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_64075557c6a39094 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_write_mini_format)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_4fcabf8d41da421f ("
+  , "  heif_context *arg1,"
+  , "  char const *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_write_to_file)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_dcde2d838b9789eb ("
+  , "  heif_context *arg1,"
+  , "  heif_writer *arg2,"
+  , "  void *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_write)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_8b4419bc4eb2363d ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_encoder_for_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_20792e040c32e0e8 ("
+  , "  heif_compression_format arg1,"
+  , "  char const *arg2,"
+  , "  heif_encoder_descriptor const **arg3,"
+  , "  signed int arg4"
+  , ")"
+  , "{"
+  , "  return (heif_get_encoder_descriptors)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "char const *hs_bindgen_7378a87d06f64c7f ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_32132b83ae93dd0d ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "heif_compression_format hs_bindgen_516b3c831a5935aa ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_get_compression_format)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_387691abb58c5a8c ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_c3eff547363f97b7 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supports_lossless_compression)(arg1);"
+  , "}"
+  , "void hs_bindgen_4c48d2c2a159ab39 ("
+  , "  heif_context *arg1,"
+  , "  heif_encoder_descriptor const *arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_5bab8f03475ec97b ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  heif_encoder **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_context_get_encoder_for_format)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_5be4df5257e0d63e ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoder_release)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_55e2efba5427c071 ("
+  , "  heif_encoder const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_get_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_9700eae02c9f1b08 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossy_quality)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_0d4543b236bd057c ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_lossless)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_528ef0518bd8ed17 ("
+  , "  heif_encoder *arg1,"
+  , "  signed int arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_set_logging_level)(arg1, arg2);"
+  , "}"
+  , "heif_encoder_parameter const *const *hs_bindgen_8ba729e891d005fb ("
+  , "  heif_encoder *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_list_parameters)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_0b37fad3bcbc1032 ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_name)(arg1);"
+  , "}"
+  , "enum heif_encoder_parameter_type hs_bindgen_effc6448978f082b ("
+  , "  heif_encoder_parameter const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_parameter_get_type)(arg1);"
+  , "}"
+  , "void hs_bindgen_9cc90071aaec91f3 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_parameter_get_valid_integer_range)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_050ff9ca987786fb ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  signed int *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int const **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_encoder_parameter_get_valid_integer_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_349b7bf99e396f16 ("
+  , "  heif_encoder_parameter const *arg1,"
+  , "  char const *const **arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_encoder_parameter_get_valid_string_values)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_d653763347d1d09b ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_2ad63a212716469e ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_integer)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_d43bc70645423305 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_encoder_parameter_integer_valid_range)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_d8ed4c246561cc69 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_ca3fbaeda04e9582 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_get_parameter_boolean)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_908cf213e79a8290 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter_string)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_7285de07553fd7c4 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter_string)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "void hs_bindgen_67b0a8f7e96abb96 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *const **arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_parameter_string_valid_values)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_837fd04e76a07e3c ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  signed int *arg3,"
+  , "  signed int *arg4,"
+  , "  signed int *arg5,"
+  , "  signed int *arg6,"
+  , "  signed int *arg7,"
+  , "  signed int const **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_encoder_parameter_integer_valid_values)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_26a36653bf79dc5e ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_encoder_set_parameter)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_badf4585dea9cce8 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2,"
+  , "  char *arg3,"
+  , "  signed int arg4,"
+  , "  heif_error *arg5"
+  , ")"
+  , "{"
+  , "  *arg5 = (heif_encoder_get_parameter)(arg1, arg2, arg3, arg4);"
+  , "}"
+  , "signed int hs_bindgen_5f05e81fb1017506 ("
+  , "  heif_encoder *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_has_default)(arg1, arg2);"
+  , "}"
+  , "heif_orientation hs_bindgen_5de65368b622937b ("
+  , "  heif_orientation arg1,"
+  , "  heif_orientation arg2"
+  , ")"
+  , "{"
+  , "  return (heif_orientation_concat)(arg1, arg2);"
+  , "}"
+  , "heif_encoding_options *hs_bindgen_a63382036a0c2ed6 (void)"
+  , "{"
+  , "  return (heif_encoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_3a1ae325c063e780 ("
+  , "  heif_encoding_options *arg1,"
+  , "  heif_encoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7e49924263fcce32 ("
+  , "  heif_encoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_encoding_options_free)(arg1);"
+  , "}"
+  , "void hs_bindgen_6ac3b36ffb994fd2 ("
+  , "  heif_context *arg1,"
+  , "  heif_image const *arg2,"
+  , "  heif_encoder *arg3,"
+  , "  heif_encoding_options const *arg4,"
+  , "  heif_image_handle **arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_context_encode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_1d9fc34edd017e95 ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_item_id const *arg5,"
+  , "  int32_t *arg6,"
+  , "  uint16_t const *arg7,"
+  , "  heif_image_handle **arg8,"
+  , "  heif_error *arg9"
+  , ")"
+  , "{"
+  , "  *arg9 = (heif_context_add_overlay_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);"
+  , "}"
+  , "void hs_bindgen_a78d763f0e72894b ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  heif_error *arg3"
+  , ")"
+  , "{"
+  , "  *arg3 = (heif_context_set_primary_image)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_7cfa31db45c6d2e0 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_major_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_53369da73974a5c8 ("
+  , "  heif_context *arg1,"
+  , "  heif_brand2 arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_add_compatible_brand)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_ee19be3747255a78 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_unif)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_6aa908eebd2da1c7 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossy_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ae780e3f1353c894 ("
+  , "  heif_encoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_encoder_descriptor_supportes_lossless_compression)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_2c76e06503a77574 ("
+  , "  heif_context *arg1,"
+  , "  heif_compression_format arg2,"
+  , "  char const *arg3,"
+  , "  heif_encoder_descriptor const **arg4,"
+  , "  signed int arg5"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_encoder_descriptors)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_87200925476eeec7 ("
+  , "  heif_context *arg1,"
+  , "  signed int arg2"
+  , ")"
+  , "{"
+  , "  (heif_context_set_max_decoding_threads)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_0c7154c9354fd286 ("
+  , "  heif_context const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_context_get_max_decoding_threads)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_42f0650f86196b25 ("
+  , "  heif_compression_format arg1"
+  , ")"
+  , "{"
+  , "  return (heif_have_decoder_for_format)(arg1);"
+  , "}"
+  , "heif_decoding_options *hs_bindgen_9c5874c5219718b8 (void)"
+  , "{"
+  , "  return (heif_decoding_options_alloc)();"
+  , "}"
+  , "void hs_bindgen_3b86db3999f11506 ("
+  , "  heif_decoding_options *arg1,"
+  , "  heif_decoding_options const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_copy)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_cf88ca791cd899fe ("
+  , "  heif_decoding_options *arg1"
+  , ")"
+  , "{"
+  , "  (heif_decoding_options_free)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_ab1f907a34ddc140 ("
+  , "  heif_compression_format arg1,"
+  , "  heif_decoder_descriptor const **arg2,"
+  , "  signed int arg3"
+  , ")"
+  , "{"
+  , "  return (heif_get_decoder_descriptors)(arg1, arg2, arg3);"
+  , "}"
+  , "char const *hs_bindgen_b5afa8de744aaab5 ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_name)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_7203e9b04a7a74dd ("
+  , "  heif_decoder_descriptor const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_decoder_descriptor_get_id_name)(arg1);"
+  , "}"
+  , "void hs_bindgen_9c566de5c30f008a ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_decode_image)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_28bf4adaa29e960b ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_release)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_9cd66a4acc781749 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_primary_image)(arg1);"
+  , "}"
+  , "heif_item_id hs_bindgen_883fc3dc3fc5532a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_item_id)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_0bcd25e50e8763ba ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_bd94a464a89cccfb ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_019a58dabf17e62f ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_alpha_channel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_07e4281a42d682d8 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_is_premultiplied_alpha)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_bd8920bbdfc607cb ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_luma_bits_per_pixel)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_4a9b5e4f4022f165 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_chroma_bits_per_pixel)(arg1);"
+  , "}"
+  , "void hs_bindgen_5866c7e268ce84a7 ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_colorspace *arg2,"
+  , "  heif_chroma *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_preferred_decoding_colorspace)(arg1, arg2, arg3);"
+  , "}"
+  , "signed int hs_bindgen_4ac86f0a6dddfea5 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_width)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_d6a6f34b63a7c18c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_ispe_height)(arg1);"
+  , "}"
+  , "signed int hs_bindgen_5b65c4e9e89d0618 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2,"
+  , "  uint32_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_pixel_aspect_ratio)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_context *hs_bindgen_416f140cd405607c ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_context)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_9d6713702978e3f4 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_content_id)(arg1);"
+  , "}"
+  , "void hs_bindgen_f107d82f17708377 ("
+  , "  heif_image_handle *arg1,"
+  , "  char const *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_content_id)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_d241b0dabaa4529a ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_cmpd_components)(arg1);"
+  , "}"
+  , "uint16_t hs_bindgen_f849f5a5579d0d53 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type)(arg1, arg2);"
+  , "}"
+  , "char const *hs_bindgen_f0f8fe1e51403813 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_cmpd_component_type_uri)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_8f5d4dfd76b35269 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_has_gimi_component_content_ids)(arg1);"
+  , "}"
+  , "char const *hs_bindgen_4c964b2acbe2715a ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_gimi_component_content_id)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_b545cf8f497992ae ("
+  , "  heif_image_handle *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_44591d28e788d50c ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  struct heif_image_tiling *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_handle_get_image_tiling)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_aaf84ee2e27e5f15 ("
+  , "  heif_image_handle const *arg1,"
+  , "  signed int arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_item_id *arg5,"
+  , "  heif_error *arg6"
+  , ")"
+  , "{"
+  , "  *arg6 = (heif_image_handle_get_grid_image_tile_id)(arg1, arg2, arg3, arg4, arg5);"
+  , "}"
+  , "void hs_bindgen_71d50457a2e7f14b ("
+  , "  heif_image_handle const *arg1,"
+  , "  heif_image **arg2,"
+  , "  heif_colorspace arg3,"
+  , "  heif_chroma arg4,"
+  , "  heif_decoding_options const *arg5,"
+  , "  uint32_t arg6,"
+  , "  uint32_t arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_handle_decode_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_b6f1896d3842bb1b ("
+  , "  heif_context *arg1,"
+  , "  heif_image **arg2,"
+  , "  uint16_t arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_encoder *arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_encode_grid)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_c0099c7d4964643d ("
+  , "  heif_context *arg1,"
+  , "  uint32_t arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  uint32_t arg5,"
+  , "  heif_encoding_options const *arg6,"
+  , "  heif_image_handle **arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_context_add_grid_image)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "void hs_bindgen_188355cccd5fdf14 ("
+  , "  heif_context *arg1,"
+  , "  heif_image_handle *arg2,"
+  , "  uint32_t arg3,"
+  , "  uint32_t arg4,"
+  , "  heif_image const *arg5,"
+  , "  heif_encoder *arg6,"
+  , "  heif_error *arg7"
+  , ")"
+  , "{"
+  , "  *arg7 = (heif_context_add_image_tile)(arg1, arg2, arg3, arg4, arg5, arg6);"
+  , "}"
+  , "uint32_t hs_bindgen_92d950ffdc2de847 ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_number_of_used_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_50b42d71ed1d2033 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "heif_channel hs_bindgen_d7d8117bfd051b7c ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_channel)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_d27f543b4e39211d ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_width)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_a5924fcf635470b3 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_height)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_212a3558eb9bbb38 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_2a65608da4a96b45 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_type)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_5d0c49abeb7489aa ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "uint32_t hs_bindgen_3e577779e550a986 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_number_of_components)(arg1);"
+  , "}"
+  , "void hs_bindgen_3de5a3a45cf894db ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t *arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_get_used_component_ids)(arg1, arg2);"
+  , "}"
+  , "uint16_t hs_bindgen_a672d180928a4092 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_type)(arg1, arg2);"
+  , "}"
+  , "signed int hs_bindgen_d6755ff0da5d47f0 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_bits_per_pixel)(arg1, arg2);"
+  , "}"
+  , "heif_component_datatype hs_bindgen_4b42fd1e2f6c1b06 ("
+  , "  heif_image_handle const *arg1,"
+  , "  uint32_t arg2"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_component_datatype)(arg1, arg2);"
+  , "}"
+  , "void hs_bindgen_97edbd3d5283c85d ("
+  , "  heif_image *arg1,"
+  , "  signed int arg2,"
+  , "  signed int arg3,"
+  , "  uint16_t arg4,"
+  , "  heif_component_datatype arg5,"
+  , "  signed int arg6,"
+  , "  uint32_t *arg7,"
+  , "  heif_error *arg8"
+  , ")"
+  , "{"
+  , "  *arg8 = (heif_image_add_component)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);"
+  , "}"
+  , "uint8_t const *hs_bindgen_41c5204933fd6b05 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint8_t *hs_bindgen_c588ded2a4e43ed3 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t const *hs_bindgen_a0c133d2f6cf6ecb ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint16_t *hs_bindgen_df23dc13cfbceb66 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint16)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t const *hs_bindgen_04f19447334809a3 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint32_t *hs_bindgen_685261e63a2699dc ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint32)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t const *hs_bindgen_d36a1f5767c400a9 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "uint64_t *hs_bindgen_54efeef674e4787a ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_uint64)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t const *hs_bindgen_6d8f578fb4b8f599 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int8_t *hs_bindgen_0571e5bd586c7239 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int8)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t const *hs_bindgen_75635c2481355b9d ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int16_t *hs_bindgen_c1e147a254585429 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int16)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t const *hs_bindgen_c63eb568cec8ad9f ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int32_t *hs_bindgen_dd8ada136a08e398 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int32)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t const *hs_bindgen_3f4ad7985062f4b4 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "int64_t *hs_bindgen_0ec9f92992fb98b3 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_int64)(arg1, arg2, arg3);"
+  , "}"
+  , "float const *hs_bindgen_23f11ff4a331711a ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "float *hs_bindgen_4b3f20877e3bea63 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float32)(arg1, arg2, arg3);"
+  , "}"
+  , "double const *hs_bindgen_f12ea4b15194e665 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "double *hs_bindgen_ca1c705a0dd0055e ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_float64)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 const *hs_bindgen_a98fe7eded61994f ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex32 *hs_bindgen_d6ca0ebc868780f0 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex32)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 const *hs_bindgen_bad0deef2747e198 ("
+  , "  heif_image const *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64_readonly)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_complex64 *hs_bindgen_d421676f6243ada6 ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  size_t *arg3"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_component_complex64)(arg1, arg2, arg3);"
+  , "}"
+  , "void hs_bindgen_e6f35aaf095c291e ("
+  , "  heif_image *arg1,"
+  , "  uint32_t arg2,"
+  , "  char const *arg3,"
+  , "  heif_error *arg4"
+  , ")"
+  , "{"
+  , "  *arg4 = (heif_image_set_gimi_component_content_id)(arg1, arg2, arg3);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_8c10fbaea42a19e7 ("
+  , "  heif_image_handle const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_handle_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_3affee0f8870d4ec ("
+  , "  heif_image_handle *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_handle_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  , "heif_omaf_image_projection hs_bindgen_a29dc52a1e29118f ("
+  , "  heif_image const *arg1"
+  , ")"
+  , "{"
+  , "  return (heif_image_get_omaf_image_projection)(arg1);"
+  , "}"
+  , "void hs_bindgen_5ca071150556330e ("
+  , "  heif_image *arg1,"
+  , "  heif_omaf_image_projection arg2"
+  , ")"
+  , "{"
+  , "  (heif_image_set_omaf_image_projection)(arg1, arg2);"
+  , "}"
+  ]))
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version@
+foreign import ccall unsafe "hs_bindgen_e3bffa314a90058b" hs_bindgen_e3bffa314a90058b_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version@
+hs_bindgen_e3bffa314a90058b :: IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_e3bffa314a90058b =
+  BG.fromFFIType hs_bindgen_e3bffa314a90058b_base
+
+{-| __C declaration:__ @heif_get_version@
+
+    __defined at:__ @libheif\/heif_library.h 72:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version :: IO (PtrConst.PtrConst BG.CChar)
+heif_get_version = hs_bindgen_e3bffa314a90058b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number@
+foreign import ccall unsafe "hs_bindgen_5ac80c1443aa4448" hs_bindgen_5ac80c1443aa4448_base ::
+     IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number@
+hs_bindgen_5ac80c1443aa4448 :: IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_5ac80c1443aa4448 =
+  BG.fromFFIType hs_bindgen_5ac80c1443aa4448_base
+
+{-| __C declaration:__ @heif_get_version_number@
+
+    __defined at:__ @libheif\/heif_library.h 76:22@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number :: IO HsBindgen.Runtime.LibC.Word32
+heif_get_version_number = hs_bindgen_5ac80c1443aa4448
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_major@
+foreign import ccall unsafe "hs_bindgen_55e4521e93626126" hs_bindgen_55e4521e93626126_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_major@
+hs_bindgen_55e4521e93626126 :: IO BG.CInt
+hs_bindgen_55e4521e93626126 =
+  BG.fromFFIType hs_bindgen_55e4521e93626126_base
+
+{-| __C declaration:__ @heif_get_version_number_major@
+
+    __defined at:__ @libheif\/heif_library.h 79:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_major :: IO BG.CInt
+heif_get_version_number_major =
+  hs_bindgen_55e4521e93626126
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_minor@
+foreign import ccall unsafe "hs_bindgen_145a4f240219e0a9" hs_bindgen_145a4f240219e0a9_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_minor@
+hs_bindgen_145a4f240219e0a9 :: IO BG.CInt
+hs_bindgen_145a4f240219e0a9 =
+  BG.fromFFIType hs_bindgen_145a4f240219e0a9_base
+
+{-| __C declaration:__ @heif_get_version_number_minor@
+
+    __defined at:__ @libheif\/heif_library.h 81:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_minor :: IO BG.CInt
+heif_get_version_number_minor =
+  hs_bindgen_145a4f240219e0a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_maintenance@
+foreign import ccall unsafe "hs_bindgen_58fbe8d31194675b" hs_bindgen_58fbe8d31194675b_base ::
+     IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_version_number_maintenance@
+hs_bindgen_58fbe8d31194675b :: IO BG.CInt
+hs_bindgen_58fbe8d31194675b =
+  BG.fromFFIType hs_bindgen_58fbe8d31194675b_base
+
+{-| __C declaration:__ @heif_get_version_number_maintenance@
+
+    __defined at:__ @libheif\/heif_library.h 83:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_version_number_maintenance :: IO BG.CInt
+heif_get_version_number_maintenance =
+  hs_bindgen_58fbe8d31194675b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_string_release@
+foreign import ccall unsafe "hs_bindgen_5305381a834858f6" hs_bindgen_5305381a834858f6_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_string_release@
+hs_bindgen_5305381a834858f6 ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_5305381a834858f6 =
+  BG.fromFFIType hs_bindgen_5305381a834858f6_base
+
+{-| __C declaration:__ @heif_string_release@
+
+    __defined at:__ @libheif\/heif_library.h 100:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_string_release ::
+     PtrConst.PtrConst BG.CChar
+  -> IO ()
+heif_string_release = hs_bindgen_5305381a834858f6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_init@
+foreign import ccall unsafe "hs_bindgen_c6cf67a7df25bdec" hs_bindgen_c6cf67a7df25bdec_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_init@
+hs_bindgen_c6cf67a7df25bdec ::
+     BG.Ptr Heif_init_params
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_c6cf67a7df25bdec =
+  BG.fromFFIType hs_bindgen_c6cf67a7df25bdec_base
+
+{-| __C declaration:__ @heif_init@
+
+    __defined at:__ @libheif\/heif_library.h 133:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_init ::
+     BG.Ptr Heif_init_params
+  -> IO Heif_error
+heif_init =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_c6cf67a7df25bdec x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_deinit@
+foreign import ccall unsafe "hs_bindgen_e1615a4fb170ecfe" hs_bindgen_e1615a4fb170ecfe_base ::
+     IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_deinit@
+hs_bindgen_e1615a4fb170ecfe :: IO ()
+hs_bindgen_e1615a4fb170ecfe =
+  BG.fromFFIType hs_bindgen_e1615a4fb170ecfe_base
+
+{-| __C declaration:__ @heif_deinit@
+
+    __defined at:__ @libheif\/heif_library.h 148:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_deinit :: IO ()
+heif_deinit = hs_bindgen_e1615a4fb170ecfe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugin@
+foreign import ccall unsafe "hs_bindgen_7e4ae8064e7fa414" hs_bindgen_7e4ae8064e7fa414_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugin@
+hs_bindgen_7e4ae8064e7fa414 ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7e4ae8064e7fa414 =
+  BG.fromFFIType hs_bindgen_7e4ae8064e7fa414_base
+
+{-| __C declaration:__ @heif_load_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 170:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugin ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugin@
+  -> IO Heif_error
+heif_load_plugin =
+  \filename0 ->
+    \out_plugin1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_7e4ae8064e7fa414 filename0 out_plugin1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugins@
+foreign import ccall unsafe "hs_bindgen_8d1c6ca731acead9" hs_bindgen_8d1c6ca731acead9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_load_plugins@
+hs_bindgen_8d1c6ca731acead9 ::
+     PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+  -> BG.Ptr BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8d1c6ca731acead9 =
+  BG.fromFFIType hs_bindgen_8d1c6ca731acead9_base
+
+{-| __C declaration:__ @heif_load_plugins@
+
+    __defined at:__ @libheif\/heif_library.h 173:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_load_plugins ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @directory@
+  -> BG.Ptr (PtrConst.PtrConst Heif_plugin_info)
+     -- ^ __C declaration:__ @out_plugins@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_nPluginsLoaded@
+  -> BG.CInt
+     -- ^ __C declaration:__ @output_array_size@
+  -> IO Heif_error
+heif_load_plugins =
+  \directory0 ->
+    \out_plugins1 ->
+      \out_nPluginsLoaded2 ->
+        \output_array_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_8d1c6ca731acead9 directory0 out_plugins1 out_nPluginsLoaded2 output_array_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_unload_plugin@
+foreign import ccall unsafe "hs_bindgen_538500d1fad0b893" hs_bindgen_538500d1fad0b893_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_unload_plugin@
+hs_bindgen_538500d1fad0b893 ::
+     PtrConst.PtrConst Heif_plugin_info
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_538500d1fad0b893 =
+  BG.fromFFIType hs_bindgen_538500d1fad0b893_base
+
+{-| __C declaration:__ @heif_unload_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 179:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_unload_plugin ::
+     PtrConst.PtrConst Heif_plugin_info
+     -- ^ __C declaration:__ @plugin@
+  -> IO Heif_error
+heif_unload_plugin =
+  \plugin0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_538500d1fad0b893 plugin0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_9ed471f495e48c49" hs_bindgen_9ed471f495e48c49_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_plugin_directories@
+hs_bindgen_9ed471f495e48c49 :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+hs_bindgen_9ed471f495e48c49 =
+  BG.fromFFIType hs_bindgen_9ed471f495e48c49_base
+
+{-| __C declaration:__ @heif_get_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 185:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_plugin_directories :: IO (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+heif_get_plugin_directories =
+  hs_bindgen_9ed471f495e48c49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_plugin_directories@
+foreign import ccall unsafe "hs_bindgen_9d2405417393e657" hs_bindgen_9d2405417393e657_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_plugin_directories@
+hs_bindgen_9d2405417393e657 ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_9d2405417393e657 =
+  BG.fromFFIType hs_bindgen_9d2405417393e657_base
+
+{-| __C declaration:__ @heif_free_plugin_directories@
+
+    __defined at:__ @libheif\/heif_library.h 188:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_plugin_directories ::
+     PtrConst.PtrConst (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+heif_free_plugin_directories =
+  hs_bindgen_9d2405417393e657
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder_plugin@
+foreign import ccall unsafe "hs_bindgen_835dc3bcc6b1f285" hs_bindgen_835dc3bcc6b1f285_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder_plugin@
+hs_bindgen_835dc3bcc6b1f285 ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_835dc3bcc6b1f285 =
+  BG.fromFFIType hs_bindgen_835dc3bcc6b1f285_base
+
+{-| __C declaration:__ @heif_register_decoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder_plugin ::
+     PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_835dc3bcc6b1f285 x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_encoder_plugin@
+foreign import ccall unsafe "hs_bindgen_12b9be4adedf03bd" hs_bindgen_12b9be4adedf03bd_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_encoder_plugin@
+hs_bindgen_12b9be4adedf03bd ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_12b9be4adedf03bd =
+  BG.fromFFIType hs_bindgen_12b9be4adedf03bd_base
+
+{-| __C declaration:__ @heif_register_encoder_plugin@
+
+    __defined at:__ @libheif\/heif_library.h 200:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_encoder_plugin ::
+     PtrConst.PtrConst Heif_encoder_plugin
+  -> IO Heif_error
+heif_register_encoder_plugin =
+  \x0 ->
+    BG.allocaAndPeek (\res1 ->
+                        hs_bindgen_12b9be4adedf03bd x0 res1)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder@
+foreign import ccall unsafe "hs_bindgen_5f60338dadf21f69" hs_bindgen_5f60338dadf21f69_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_register_decoder@
+hs_bindgen_5f60338dadf21f69 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5f60338dadf21f69 =
+  BG.fromFFIType hs_bindgen_5f60338dadf21f69_base
+
+{-| __C declaration:__ @heif_register_decoder@
+
+    __defined at:__ @libheif\/heif_library.h 205:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_register_decoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @heif@
+  -> PtrConst.PtrConst Heif_decoder_plugin
+  -> IO Heif_error
+heif_register_decoder =
+  \heif0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_5f60338dadf21f69 heif0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_colorspace@
+foreign import ccall unsafe "hs_bindgen_6eefe02d29f57a47" hs_bindgen_6eefe02d29f57a47_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_colorspace@
+hs_bindgen_6eefe02d29f57a47 ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+hs_bindgen_6eefe02d29f57a47 =
+  BG.fromFFIType hs_bindgen_6eefe02d29f57a47_base
+
+{-| __C declaration:__ @heif_image_get_colorspace@
+
+    __defined at:__ @libheif\/heif_image.h 150:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_colorspace ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_colorspace
+heif_image_get_colorspace =
+  hs_bindgen_6eefe02d29f57a47
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_chroma_format@
+foreign import ccall unsafe "hs_bindgen_53faf2b1fc8a2156" hs_bindgen_53faf2b1fc8a2156_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_chroma_format@
+hs_bindgen_53faf2b1fc8a2156 ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+hs_bindgen_53faf2b1fc8a2156 =
+  BG.fromFFIType hs_bindgen_53faf2b1fc8a2156_base
+
+{-| __C declaration:__ @heif_image_get_chroma_format@
+
+    __defined at:__ @libheif\/heif_image.h 154:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_chroma_format ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_chroma
+heif_image_get_chroma_format =
+  hs_bindgen_53faf2b1fc8a2156
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_width@
+foreign import ccall unsafe "hs_bindgen_e633bfc0672b32e7" hs_bindgen_e633bfc0672b32e7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_width@
+hs_bindgen_e633bfc0672b32e7 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_e633bfc0672b32e7 =
+  BG.fromFFIType hs_bindgen_e633bfc0672b32e7_base
+
+{-| __C declaration:__ @heif_image_get_width@
+
+    __defined at:__ @libheif\/heif_image.h 164:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_width = hs_bindgen_e633bfc0672b32e7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_height@
+foreign import ccall unsafe "hs_bindgen_c0cbbfe9b797da51" hs_bindgen_c0cbbfe9b797da51_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_height@
+hs_bindgen_c0cbbfe9b797da51 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_c0cbbfe9b797da51 =
+  BG.fromFFIType hs_bindgen_c0cbbfe9b797da51_base
+
+{-| __C declaration:__ @heif_image_get_height@
+
+    __defined at:__ @libheif\/heif_image.h 174:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_height = hs_bindgen_c0cbbfe9b797da51
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_width@
+foreign import ccall unsafe "hs_bindgen_c79ddf7426928ec2" hs_bindgen_c79ddf7426928ec2_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_width@
+hs_bindgen_c79ddf7426928ec2 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_c79ddf7426928ec2 =
+  BG.fromFFIType hs_bindgen_c79ddf7426928ec2_base
+
+{-| __C declaration:__ @heif_image_get_primary_width@
+
+    __defined at:__ @libheif\/heif_image.h 186:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_width ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_width =
+  hs_bindgen_c79ddf7426928ec2
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_height@
+foreign import ccall unsafe "hs_bindgen_fc1202e0c5cd3d09" hs_bindgen_fc1202e0c5cd3d09_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_primary_height@
+hs_bindgen_fc1202e0c5cd3d09 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_fc1202e0c5cd3d09 =
+  BG.fromFFIType hs_bindgen_fc1202e0c5cd3d09_base
+
+{-| __C declaration:__ @heif_image_get_primary_height@
+
+    __defined at:__ @libheif\/heif_image.h 198:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_primary_height ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @img@
+  -> IO BG.CInt
+heif_image_get_primary_height =
+  hs_bindgen_fc1202e0c5cd3d09
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_crop@
+foreign import ccall unsafe "hs_bindgen_298d1d9ee3c4f3f2" hs_bindgen_298d1d9ee3c4f3f2_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_crop@
+hs_bindgen_298d1d9ee3c4f3f2 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_298d1d9ee3c4f3f2 =
+  BG.fromFFIType hs_bindgen_298d1d9ee3c4f3f2_base
+
+{-| __C declaration:__ @heif_image_crop@
+
+    __defined at:__ @libheif\/heif_image.h 222:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_crop ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @img@
+  -> BG.CInt
+     -- ^ __C declaration:__ @left@
+  -> BG.CInt
+     -- ^ __C declaration:__ @right@
+  -> BG.CInt
+     -- ^ __C declaration:__ @top@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bottom@
+  -> IO Heif_error
+heif_image_crop =
+  \img0 ->
+    \left1 ->
+      \right2 ->
+        \top3 ->
+          \bottom4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_298d1d9ee3c4f3f2 img0 left1 right2 top3 bottom4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extract_area@
+foreign import ccall unsafe "hs_bindgen_9fd687f6d6aa62dc" hs_bindgen_9fd687f6d6aa62dc_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extract_area@
+hs_bindgen_9fd687f6d6aa62dc ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9fd687f6d6aa62dc =
+  BG.fromFFIType hs_bindgen_9fd687f6d6aa62dc_base
+
+{-| __C declaration:__ @heif_image_extract_area@
+
+    __defined at:__ @libheif\/heif_image.h 226:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extract_area ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @x0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @y0@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @w@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @h@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_extract_area =
+  \x0 ->
+    \x01 ->
+      \y02 ->
+        \w3 ->
+          \h4 ->
+            \limits5 ->
+              \out_image6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_9fd687f6d6aa62dc x0 x01 y02 w3 h4 limits5 out_image6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_4c57056151b51120" hs_bindgen_4c57056151b51120_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel@
+hs_bindgen_4c57056151b51120 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_4c57056151b51120 =
+  BG.fromFFIType hs_bindgen_4c57056151b51120_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image.h 238:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel =
+  hs_bindgen_4c57056151b51120
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel_range@
+foreign import ccall unsafe "hs_bindgen_740f2cdd311ad0b7" hs_bindgen_740f2cdd311ad0b7_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_bits_per_pixel_range@
+hs_bindgen_740f2cdd311ad0b7 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_740f2cdd311ad0b7 =
+  BG.fromFFIType hs_bindgen_740f2cdd311ad0b7_base
+
+{-| __C declaration:__ @heif_image_get_bits_per_pixel_range@
+
+    __defined at:__ @libheif\/heif_image.h 247:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_bits_per_pixel_range ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_get_bits_per_pixel_range =
+  hs_bindgen_740f2cdd311ad0b7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_channel@
+foreign import ccall unsafe "hs_bindgen_682212294f338906" hs_bindgen_682212294f338906_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_channel@
+hs_bindgen_682212294f338906 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> IO BG.CInt
+hs_bindgen_682212294f338906 =
+  BG.fromFFIType hs_bindgen_682212294f338906_base
+
+{-| __C declaration:__ @heif_image_has_channel@
+
+    __defined at:__ @libheif\/heif_image.h 250:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_channel ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> IO BG.CInt
+heif_image_has_channel = hs_bindgen_682212294f338906
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly@
+foreign import ccall unsafe "hs_bindgen_5037c6505fb52d39" hs_bindgen_5037c6505fb52d39_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly@
+hs_bindgen_5037c6505fb52d39 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_5037c6505fb52d39 =
+  BG.fromFFIType hs_bindgen_5037c6505fb52d39_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly@
+
+    __defined at:__ @libheif\/heif_image.h 258:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly =
+  hs_bindgen_5037c6505fb52d39
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane@
+foreign import ccall unsafe "hs_bindgen_1f037f5c1d43593b" hs_bindgen_1f037f5c1d43593b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane@
+hs_bindgen_1f037f5c1d43593b ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_1f037f5c1d43593b =
+  BG.fromFFIType hs_bindgen_1f037f5c1d43593b_base
+
+{-| __C declaration:__ @heif_image_get_plane@
+
+    __defined at:__ @libheif\/heif_image.h 264:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane = hs_bindgen_1f037f5c1d43593b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly2@
+foreign import ccall unsafe "hs_bindgen_f7454f02bed93ef8" hs_bindgen_f7454f02bed93ef8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane_readonly2@
+hs_bindgen_f7454f02bed93ef8 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_f7454f02bed93ef8 =
+  BG.fromFFIType hs_bindgen_f7454f02bed93ef8_base
+
+{-| __C declaration:__ @heif_image_get_plane_readonly2@
+
+    __defined at:__ @libheif\/heif_image.h 273:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane_readonly2 ::
+     PtrConst.PtrConst Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane_readonly2 =
+  hs_bindgen_f7454f02bed93ef8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane2@
+foreign import ccall unsafe "hs_bindgen_4a13b7033c17548d" hs_bindgen_4a13b7033c17548d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_plane2@
+hs_bindgen_4a13b7033c17548d ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_4a13b7033c17548d =
+  BG.fromFFIType hs_bindgen_4a13b7033c17548d_base
+
+{-| __C declaration:__ @heif_image_get_plane2@
+
+    __defined at:__ @libheif\/heif_image.h 278:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_plane2 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_plane2 = hs_bindgen_4a13b7033c17548d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_scale_image@
+foreign import ccall unsafe "hs_bindgen_cd8be1577d7b3a2b" hs_bindgen_cd8be1577d7b3a2b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_scale_image@
+hs_bindgen_cd8be1577d7b3a2b ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_scaling_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_cd8be1577d7b3a2b =
+  BG.fromFFIType hs_bindgen_cd8be1577d7b3a2b_base
+
+{-| __C declaration:__ @heif_image_scale_image@
+
+    __defined at:__ @libheif\/heif_image.h 287:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_scale_image ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @input@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @output@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> PtrConst.PtrConst Heif_scaling_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_image_scale_image =
+  \input0 ->
+    \output1 ->
+      \width2 ->
+        \height3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_cd8be1577d7b3a2b input0 output1 width2 height3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_to_size_fill_with_zero@
+foreign import ccall unsafe "hs_bindgen_f994012d02172f02" hs_bindgen_f994012d02172f02_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_to_size_fill_with_zero@
+hs_bindgen_f994012d02172f02 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f994012d02172f02 =
+  BG.fromFFIType hs_bindgen_f994012d02172f02_base
+
+{-| __C declaration:__ @heif_image_extend_to_size_fill_with_zero@
+
+    __defined at:__ @libheif\/heif_image.h 295:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_to_size_fill_with_zero ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @height@
+  -> IO Heif_error
+heif_image_extend_to_size_fill_with_zero =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_f994012d02172f02 image0 width1 height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_decoding_warnings@
+foreign import ccall unsafe "hs_bindgen_591b95f3625fb1f3" hs_bindgen_591b95f3625fb1f3_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_decoding_warnings@
+hs_bindgen_591b95f3625fb1f3 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_591b95f3625fb1f3 =
+  BG.fromFFIType hs_bindgen_591b95f3625fb1f3_base
+
+{-| __C declaration:__ @heif_image_get_decoding_warnings@
+
+    __defined at:__ @libheif\/heif_image.h 305:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_decoding_warnings ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @first_warning_idx@
+  -> BG.Ptr Heif_error
+     -- ^ __C declaration:__ @out_warnings@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_output_buffer_entries@
+  -> IO BG.CInt
+heif_image_get_decoding_warnings =
+  hs_bindgen_591b95f3625fb1f3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_decoding_warning@
+foreign import ccall unsafe "hs_bindgen_e0050d3b1bf5d002" hs_bindgen_e0050d3b1bf5d002_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_decoding_warning@
+hs_bindgen_e0050d3b1bf5d002 ::
+     BG.Ptr Heif_image
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e0050d3b1bf5d002 =
+  BG.fromFFIType hs_bindgen_e0050d3b1bf5d002_base
+
+{-| __C declaration:__ @heif_image_add_decoding_warning@
+
+    __defined at:__ @libheif\/heif_image.h 312:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_decoding_warning ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_error
+     -- ^ __C declaration:__ @err@
+  -> IO ()
+heif_image_add_decoding_warning =
+  \image0 ->
+    \err1 ->
+      BG.with err1 (\err2 ->
+                      hs_bindgen_e0050d3b1bf5d002 image0 err2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_release@
+foreign import ccall unsafe "hs_bindgen_f8b0209a7ec37965" hs_bindgen_f8b0209a7ec37965_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_release@
+hs_bindgen_f8b0209a7ec37965 ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+hs_bindgen_f8b0209a7ec37965 =
+  BG.fromFFIType hs_bindgen_f8b0209a7ec37965_base
+
+{-| __C declaration:__ @heif_image_release@
+
+    __defined at:__ @libheif\/heif_image.h 317:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_release ::
+     PtrConst.PtrConst Heif_image
+  -> IO ()
+heif_image_release = hs_bindgen_f8b0209a7ec37965
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_58b6b25baf69f6bb" hs_bindgen_58b6b25baf69f6bb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_pixel_aspect_ratio@
+hs_bindgen_58b6b25baf69f6bb ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_58b6b25baf69f6bb =
+  BG.fromFFIType hs_bindgen_58b6b25baf69f6bb_base
+
+{-| __C declaration:__ @heif_image_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 320:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_get_pixel_aspect_ratio =
+  hs_bindgen_58b6b25baf69f6bb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_64ef88c5f4227050" hs_bindgen_64ef88c5f4227050_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_pixel_aspect_ratio@
+hs_bindgen_64ef88c5f4227050 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_64ef88c5f4227050 =
+  BG.fromFFIType hs_bindgen_64ef88c5f4227050_base
+
+{-| __C declaration:__ @heif_image_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 323:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_set_pixel_aspect_ratio =
+  hs_bindgen_64ef88c5f4227050
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_1021dce469e1b127" hs_bindgen_1021dce469e1b127_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_pixel_aspect_ratio@
+hs_bindgen_1021dce469e1b127 ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_1021dce469e1b127 =
+  BG.fromFFIType hs_bindgen_1021dce469e1b127_base
+
+{-| __C declaration:__ @heif_image_handle_set_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image.h 326:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_pixel_aspect_ratio ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO ()
+heif_image_handle_set_pixel_aspect_ratio =
+  hs_bindgen_1021dce469e1b127
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_create@
+foreign import ccall unsafe "hs_bindgen_e6de35774b2629f8" hs_bindgen_e6de35774b2629f8_base ::
+     BG.Int32
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_create@
+hs_bindgen_e6de35774b2629f8 ::
+     BG.CInt
+  -> BG.CInt
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e6de35774b2629f8 =
+  BG.fromFFIType hs_bindgen_e6de35774b2629f8_base
+
+{-| __C declaration:__ @heif_image_create@
+
+    __defined at:__ @libheif\/heif_image.h 344:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_create ::
+     BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_image@
+  -> IO Heif_error
+heif_image_create =
+  \width0 ->
+    \height1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \out_image4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_e6de35774b2629f8 width0 height1 colorspace2 chroma3 out_image4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane@
+foreign import ccall unsafe "hs_bindgen_ded84e4fb2693ccb" hs_bindgen_ded84e4fb2693ccb_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane@
+hs_bindgen_ded84e4fb2693ccb ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ded84e4fb2693ccb =
+  BG.fromFFIType hs_bindgen_ded84e4fb2693ccb_base
+
+{-| __C declaration:__ @heif_image_add_plane@
+
+    __defined at:__ @libheif\/heif_image.h 378:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> IO Heif_error
+heif_image_add_plane =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_ded84e4fb2693ccb image0 channel1 width2 height3 bit_depth4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane_safe@
+foreign import ccall unsafe "hs_bindgen_14c07f3c95c4d2a1" hs_bindgen_14c07f3c95c4d2a1_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_plane_safe@
+hs_bindgen_14c07f3c95c4d2a1 ::
+     BG.Ptr Heif_image
+  -> Heif_channel
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.CInt
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_14c07f3c95c4d2a1 =
+  BG.fromFFIType hs_bindgen_14c07f3c95c4d2a1_base
+
+{-| __C declaration:__ @heif_image_add_plane_safe@
+
+    __defined at:__ @libheif\/heif_image.h 387:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_plane_safe ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_channel
+     -- ^ __C declaration:__ @channel@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> PtrConst.PtrConst Heif_security_limits
+     -- ^ __C declaration:__ @limits@
+  -> IO Heif_error
+heif_image_add_plane_safe =
+  \image0 ->
+    \channel1 ->
+      \width2 ->
+        \height3 ->
+          \bit_depth4 ->
+            \limits5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_14c07f3c95c4d2a1 image0 channel1 width2 height3 bit_depth4 limits5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_0cb37fdfaf80d23d" hs_bindgen_0cb37fdfaf80d23d_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_premultiplied_alpha@
+hs_bindgen_0cb37fdfaf80d23d ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_0cb37fdfaf80d23d =
+  BG.fromFFIType hs_bindgen_0cb37fdfaf80d23d_base
+
+{-| __C declaration:__ @heif_image_set_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 394:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @is_premultiplied_alpha@
+  -> IO ()
+heif_image_set_premultiplied_alpha =
+  hs_bindgen_0cb37fdfaf80d23d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_95281e4bf5195e90" hs_bindgen_95281e4bf5195e90_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_is_premultiplied_alpha@
+hs_bindgen_95281e4bf5195e90 ::
+     BG.Ptr Heif_image
+  -> IO BG.CInt
+hs_bindgen_95281e4bf5195e90 =
+  BG.fromFFIType hs_bindgen_95281e4bf5195e90_base
+
+{-| __C declaration:__ @heif_image_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_is_premultiplied_alpha ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO BG.CInt
+heif_image_is_premultiplied_alpha =
+  hs_bindgen_95281e4bf5195e90
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_padding_to_size@
+foreign import ccall unsafe "hs_bindgen_e7bd2b9f79bce485" hs_bindgen_e7bd2b9f79bce485_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_extend_padding_to_size@
+hs_bindgen_e7bd2b9f79bce485 ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e7bd2b9f79bce485 =
+  BG.fromFFIType hs_bindgen_e7bd2b9f79bce485_base
+
+{-| __C declaration:__ @heif_image_extend_padding_to_size@
+
+    __defined at:__ @libheif\/heif_image.h 406:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_extend_padding_to_size ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @min_physical_height@
+  -> IO Heif_error
+heif_image_extend_padding_to_size =
+  \image0 ->
+    \min_physical_width1 ->
+      \min_physical_height2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_e7bd2b9f79bce485 image0 min_physical_width1 min_physical_height2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_set_defaults@
+foreign import ccall unsafe "hs_bindgen_fa886f69180c9b13" hs_bindgen_fa886f69180c9b13_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_set_defaults@
+hs_bindgen_fa886f69180c9b13 ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+hs_bindgen_fa886f69180c9b13 =
+  BG.fromFFIType hs_bindgen_fa886f69180c9b13_base
+
+{-| __C declaration:__ @heif_color_conversion_options_set_defaults@
+
+    __defined at:__ @libheif\/heif_color.h 99:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_set_defaults ::
+     BG.Ptr Heif_color_conversion_options
+  -> IO ()
+heif_color_conversion_options_set_defaults =
+  hs_bindgen_fa886f69180c9b13
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_alloc@
+foreign import ccall unsafe "hs_bindgen_3498384f565db0bf" hs_bindgen_3498384f565db0bf_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_alloc@
+hs_bindgen_3498384f565db0bf :: IO (BG.Ptr Heif_color_conversion_options_ext)
+hs_bindgen_3498384f565db0bf =
+  BG.fromFFIType hs_bindgen_3498384f565db0bf_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 102:36@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_alloc :: IO (BG.Ptr Heif_color_conversion_options_ext)
+heif_color_conversion_options_ext_alloc =
+  hs_bindgen_3498384f565db0bf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_copy@
+foreign import ccall unsafe "hs_bindgen_a5a41101b51031e5" hs_bindgen_a5a41101b51031e5_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_copy@
+hs_bindgen_a5a41101b51031e5 ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_a5a41101b51031e5 =
+  BG.fromFFIType hs_bindgen_a5a41101b51031e5_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_copy@
+
+    __defined at:__ @libheif\/heif_color.h 105:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_copy ::
+     BG.Ptr Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_color_conversion_options_ext
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_color_conversion_options_ext_copy =
+  hs_bindgen_a5a41101b51031e5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_free@
+foreign import ccall unsafe "hs_bindgen_b151c814d468583c" hs_bindgen_b151c814d468583c_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_color_conversion_options_ext_free@
+hs_bindgen_b151c814d468583c ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+hs_bindgen_b151c814d468583c =
+  BG.fromFFIType hs_bindgen_b151c814d468583c_base
+
+{-| __C declaration:__ @heif_color_conversion_options_ext_free@
+
+    __defined at:__ @libheif\/heif_color.h 109:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_color_conversion_options_ext_free ::
+     BG.Ptr Heif_color_conversion_options_ext
+  -> IO ()
+heif_color_conversion_options_ext_free =
+  hs_bindgen_b151c814d468583c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_3d62c61f9da0c21f" hs_bindgen_3d62c61f9da0c21f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_color_profile_type@
+hs_bindgen_3d62c61f9da0c21f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_color_profile_type
+hs_bindgen_3d62c61f9da0c21f =
+  BG.fromFFIType hs_bindgen_3d62c61f9da0c21f_base
+
+{-| __C declaration:__ @heif_image_handle_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 129:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_color_profile_type
+heif_image_handle_get_color_profile_type =
+  hs_bindgen_3d62c61f9da0c21f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_e524b9c333f3e6f9" hs_bindgen_e524b9c333f3e6f9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile_size@
+hs_bindgen_e524b9c333f3e6f9 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_e524b9c333f3e6f9 =
+  BG.fromFFIType hs_bindgen_e524b9c333f3e6f9_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 132:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_raw_color_profile_size =
+  hs_bindgen_e524b9c333f3e6f9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_df7ddd74d35a1d70" hs_bindgen_df7ddd74d35a1d70_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_raw_color_profile@
+hs_bindgen_df7ddd74d35a1d70 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_df7ddd74d35a1d70 =
+  BG.fromFFIType hs_bindgen_df7ddd74d35a1d70_base
+
+{-| __C declaration:__ @heif_image_handle_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 136:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_raw_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_df7ddd74d35a1d70 handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_color_primaries@
+foreign import ccall unsafe "hs_bindgen_9bd2c76f24a46069" hs_bindgen_9bd2c76f24a46069_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_color_primaries@
+hs_bindgen_9bd2c76f24a46069 ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9bd2c76f24a46069 =
+  BG.fromFFIType hs_bindgen_9bd2c76f24a46069_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_color_primaries@
+
+    __defined at:__ @libheif\/heif_color.h 215:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_color_primaries ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @cp@
+  -> IO Heif_error
+heif_nclx_color_profile_set_color_primaries =
+  \nclx0 ->
+    \cp1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_9bd2c76f24a46069 nclx0 cp1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_transfer_characteristics@
+foreign import ccall unsafe "hs_bindgen_55f3e8ab84a6b8ef" hs_bindgen_55f3e8ab84a6b8ef_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_transfer_characteristics@
+hs_bindgen_55f3e8ab84a6b8ef ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_55f3e8ab84a6b8ef =
+  BG.fromFFIType hs_bindgen_55f3e8ab84a6b8ef_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_transfer_characteristics@
+
+    __defined at:__ @libheif\/heif_color.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_transfer_characteristics ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @transfer_characteristics@
+  -> IO Heif_error
+heif_nclx_color_profile_set_transfer_characteristics =
+  \nclx0 ->
+    \transfer_characteristics1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_55f3e8ab84a6b8ef nclx0 transfer_characteristics1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_matrix_coefficients@
+foreign import ccall unsafe "hs_bindgen_8e5fd31a41ae1cdd" hs_bindgen_8e5fd31a41ae1cdd_base ::
+     BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_set_matrix_coefficients@
+hs_bindgen_8e5fd31a41ae1cdd ::
+     BG.Ptr Heif_color_profile_nclx
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8e5fd31a41ae1cdd =
+  BG.fromFFIType hs_bindgen_8e5fd31a41ae1cdd_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_set_matrix_coefficients@
+
+    __defined at:__ @libheif\/heif_color.h 221:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_set_matrix_coefficients ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @matrix_coefficients@
+  -> IO Heif_error
+heif_nclx_color_profile_set_matrix_coefficients =
+  \nclx0 ->
+    \matrix_coefficients1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8e5fd31a41ae1cdd nclx0 matrix_coefficients1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_8546dd13ed062f1c" hs_bindgen_8546dd13ed062f1c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nclx_color_profile@
+hs_bindgen_8546dd13ed062f1c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8546dd13ed062f1c =
+  BG.fromFFIType hs_bindgen_8546dd13ed062f1c_base
+
+{-| __C declaration:__ @heif_image_handle_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 227:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_nclx_color_profile =
+  \handle0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8546dd13ed062f1c handle0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_alloc@
+foreign import ccall unsafe "hs_bindgen_ae248e74768fcbe7" hs_bindgen_ae248e74768fcbe7_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_alloc@
+hs_bindgen_ae248e74768fcbe7 :: IO (BG.Ptr Heif_color_profile_nclx)
+hs_bindgen_ae248e74768fcbe7 =
+  BG.fromFFIType hs_bindgen_ae248e74768fcbe7_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_alloc@
+
+    __defined at:__ @libheif\/heif_color.h 234:26@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_alloc :: IO (BG.Ptr Heif_color_profile_nclx)
+heif_nclx_color_profile_alloc =
+  hs_bindgen_ae248e74768fcbe7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_free@
+foreign import ccall unsafe "hs_bindgen_e5cdf6772bff08ab" hs_bindgen_e5cdf6772bff08ab_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_nclx_color_profile_free@
+hs_bindgen_e5cdf6772bff08ab ::
+     BG.Ptr Heif_color_profile_nclx
+  -> IO ()
+hs_bindgen_e5cdf6772bff08ab =
+  BG.fromFFIType hs_bindgen_e5cdf6772bff08ab_base
+
+{-| __C declaration:__ @heif_nclx_color_profile_free@
+
+    __defined at:__ @libheif\/heif_color.h 237:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_nclx_color_profile_free ::
+     BG.Ptr Heif_color_profile_nclx
+     -- ^ __C declaration:__ @nclx_profile@
+  -> IO ()
+heif_nclx_color_profile_free =
+  hs_bindgen_e5cdf6772bff08ab
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_color_profile_type@
+foreign import ccall unsafe "hs_bindgen_698c659a583ecfcf" hs_bindgen_698c659a583ecfcf_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_color_profile_type@
+hs_bindgen_698c659a583ecfcf ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_color_profile_type
+hs_bindgen_698c659a583ecfcf =
+  BG.fromFFIType hs_bindgen_698c659a583ecfcf_base
+
+{-| __C declaration:__ @heif_image_get_color_profile_type@
+
+    __defined at:__ @libheif\/heif_color.h 243:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_color_profile_type ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_color_profile_type
+heif_image_get_color_profile_type =
+  hs_bindgen_698c659a583ecfcf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile_size@
+foreign import ccall unsafe "hs_bindgen_899b31b8f4d0b139" hs_bindgen_899b31b8f4d0b139_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile_size@
+hs_bindgen_899b31b8f4d0b139 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_899b31b8f4d0b139 =
+  BG.fromFFIType hs_bindgen_899b31b8f4d0b139_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile_size@
+
+    __defined at:__ @libheif\/heif_color.h 247:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile_size ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_get_raw_color_profile_size =
+  hs_bindgen_899b31b8f4d0b139
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_dd6958f1991911be" hs_bindgen_dd6958f1991911be_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_raw_color_profile@
+hs_bindgen_dd6958f1991911be ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_dd6958f1991911be =
+  BG.fromFFIType hs_bindgen_dd6958f1991911be_base
+
+{-| __C declaration:__ @heif_image_get_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_raw_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_raw_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_dd6958f1991911be image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_066842cfad9d7788" hs_bindgen_066842cfad9d7788_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nclx_color_profile@
+hs_bindgen_066842cfad9d7788 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_066842cfad9d7788 =
+  BG.fromFFIType hs_bindgen_066842cfad9d7788_base
+
+{-| __C declaration:__ @heif_image_get_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nclx_color_profile ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr (BG.Ptr Heif_color_profile_nclx)
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_get_nclx_color_profile =
+  \image0 ->
+    \out_data1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_066842cfad9d7788 image0 out_data1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_raw_color_profile@
+foreign import ccall unsafe "hs_bindgen_e39706130308fb22" hs_bindgen_e39706130308fb22_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_raw_color_profile@
+hs_bindgen_e39706130308fb22 ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e39706130308fb22 =
+  BG.fromFFIType hs_bindgen_e39706130308fb22_base
+
+{-| __C declaration:__ @heif_image_set_raw_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 262:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_raw_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @profile_type_fourcc_string@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @profile_data@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @profile_size@
+  -> IO Heif_error
+heif_image_set_raw_color_profile =
+  \image0 ->
+    \profile_type_fourcc_string1 ->
+      \profile_data2 ->
+        \profile_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_e39706130308fb22 image0 profile_type_fourcc_string1 profile_data2 profile_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nclx_color_profile@
+foreign import ccall unsafe "hs_bindgen_c4e7050d9db10e9a" hs_bindgen_c4e7050d9db10e9a_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nclx_color_profile@
+hs_bindgen_c4e7050d9db10e9a ::
+     BG.Ptr Heif_image
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_c4e7050d9db10e9a =
+  BG.fromFFIType hs_bindgen_c4e7050d9db10e9a_base
+
+{-| __C declaration:__ @heif_image_set_nclx_color_profile@
+
+    __defined at:__ @libheif\/heif_color.h 268:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nclx_color_profile ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_color_profile_nclx
+     -- ^ __C declaration:__ @color_profile@
+  -> IO Heif_error
+heif_image_set_nclx_color_profile =
+  \image0 ->
+    \color_profile1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_c4e7050d9db10e9a image0 color_profile1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_be6ee6da0546d110" hs_bindgen_be6ee6da0546d110_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_content_light_level@
+hs_bindgen_be6ee6da0546d110 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_be6ee6da0546d110 =
+  BG.fromFFIType hs_bindgen_be6ee6da0546d110_base
+
+{-| __C declaration:__ @heif_image_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 301:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_content_light_level =
+  hs_bindgen_be6ee6da0546d110
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_content_light_level@
+foreign import ccall unsafe "hs_bindgen_d7e2ebf32ac53fac" hs_bindgen_d7e2ebf32ac53fac_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_content_light_level@
+hs_bindgen_d7e2ebf32ac53fac ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d7e2ebf32ac53fac =
+  BG.fromFFIType hs_bindgen_d7e2ebf32ac53fac_base
+
+{-| __C declaration:__ @heif_image_handle_has_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 304:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_content_light_level =
+  hs_bindgen_d7e2ebf32ac53fac
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_9d82218a99d2d392" hs_bindgen_9d82218a99d2d392_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_content_light_level@
+hs_bindgen_9d82218a99d2d392 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+  -> IO ()
+hs_bindgen_9d82218a99d2d392 =
+  BG.fromFFIType hs_bindgen_9d82218a99d2d392_base
+
+{-| __C declaration:__ @heif_image_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 308:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_content_light_level =
+  hs_bindgen_9d82218a99d2d392
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_content_light_level@
+foreign import ccall unsafe "hs_bindgen_b6298e4a5fe44f46" hs_bindgen_b6298e4a5fe44f46_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_content_light_level@
+hs_bindgen_b6298e4a5fe44f46 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+  -> IO BG.CInt
+hs_bindgen_b6298e4a5fe44f46 =
+  BG.fromFFIType hs_bindgen_b6298e4a5fe44f46_base
+
+{-| __C declaration:__ @heif_image_handle_get_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 312:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_content_light_level
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_content_light_level =
+  hs_bindgen_b6298e4a5fe44f46
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_1b896f9f9ad9433d" hs_bindgen_1b896f9f9ad9433d_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_content_light_level@
+hs_bindgen_1b896f9f9ad9433d ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_1b896f9f9ad9433d =
+  BG.fromFFIType hs_bindgen_1b896f9f9ad9433d_base
+
+{-| __C declaration:__ @heif_image_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 315:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_content_light_level ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_content_light_level =
+  hs_bindgen_1b896f9f9ad9433d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_content_light_level@
+foreign import ccall unsafe "hs_bindgen_0fe67c68b9c30832" hs_bindgen_0fe67c68b9c30832_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_content_light_level@
+hs_bindgen_0fe67c68b9c30832 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+  -> IO ()
+hs_bindgen_0fe67c68b9c30832 =
+  BG.fromFFIType hs_bindgen_0fe67c68b9c30832_base
+
+{-| __C declaration:__ @heif_image_handle_set_content_light_level@
+
+    __defined at:__ @libheif\/heif_color.h 318:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_content_light_level ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_content_light_level
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_content_light_level =
+  hs_bindgen_0fe67c68b9c30832
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_082b5ffbdb05d279" hs_bindgen_082b5ffbdb05d279_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_mastering_display_colour_volume@
+hs_bindgen_082b5ffbdb05d279 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_082b5ffbdb05d279 =
+  BG.fromFFIType hs_bindgen_082b5ffbdb05d279_base
+
+{-| __C declaration:__ @heif_image_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 398:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_mastering_display_colour_volume =
+  hs_bindgen_082b5ffbdb05d279
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_fbcaca522f00d549" hs_bindgen_fbcaca522f00d549_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_mastering_display_colour_volume@
+hs_bindgen_fbcaca522f00d549 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_fbcaca522f00d549 =
+  BG.fromFFIType hs_bindgen_fbcaca522f00d549_base
+
+{-| __C declaration:__ @heif_image_handle_has_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_mastering_display_colour_volume =
+  hs_bindgen_fbcaca522f00d549
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_26de052b332f6318" hs_bindgen_26de052b332f6318_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_mastering_display_colour_volume@
+hs_bindgen_26de052b332f6318 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_26de052b332f6318 =
+  BG.fromFFIType hs_bindgen_26de052b332f6318_base
+
+{-| __C declaration:__ @heif_image_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 404:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO ()
+heif_image_get_mastering_display_colour_volume =
+  hs_bindgen_26de052b332f6318
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_e82eb51924715179" hs_bindgen_e82eb51924715179_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_mastering_display_colour_volume@
+hs_bindgen_e82eb51924715179 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+  -> IO BG.CInt
+hs_bindgen_e82eb51924715179 =
+  BG.fromFFIType hs_bindgen_e82eb51924715179_base
+
+{-| __C declaration:__ @heif_image_handle_get_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 408:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_mastering_display_colour_volume =
+  hs_bindgen_e82eb51924715179
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_ffad573ff1d2e1b4" hs_bindgen_ffad573ff1d2e1b4_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_mastering_display_colour_volume@
+hs_bindgen_ffad573ff1d2e1b4 ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_ffad573ff1d2e1b4 =
+  BG.fromFFIType hs_bindgen_ffad573ff1d2e1b4_base
+
+{-| __C declaration:__ @heif_image_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 411:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_mastering_display_colour_volume =
+  hs_bindgen_ffad573ff1d2e1b4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_mastering_display_colour_volume@
+foreign import ccall unsafe "hs_bindgen_e55ed00c652e3fea" hs_bindgen_e55ed00c652e3fea_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_mastering_display_colour_volume@
+hs_bindgen_e55ed00c652e3fea ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> IO ()
+hs_bindgen_e55ed00c652e3fea =
+  BG.fromFFIType hs_bindgen_e55ed00c652e3fea_base
+
+{-| __C declaration:__ @heif_image_handle_set_mastering_display_colour_volume@
+
+    __defined at:__ @libheif\/heif_color.h 414:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_mastering_display_colour_volume ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_mastering_display_colour_volume =
+  hs_bindgen_e55ed00c652e3fea
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_d6b8dd7ef6008c82" hs_bindgen_d6b8dd7ef6008c82_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_ambient_viewing_environment@
+hs_bindgen_d6b8dd7ef6008c82 ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_d6b8dd7ef6008c82 =
+  BG.fromFFIType hs_bindgen_d6b8dd7ef6008c82_base
+
+{-| __C declaration:__ @heif_image_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 420:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_ambient_viewing_environment =
+  hs_bindgen_d6b8dd7ef6008c82
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_e0f6f90369de190f" hs_bindgen_e0f6f90369de190f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_ambient_viewing_environment@
+hs_bindgen_e0f6f90369de190f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_e0f6f90369de190f =
+  BG.fromFFIType hs_bindgen_e0f6f90369de190f_base
+
+{-| __C declaration:__ @heif_image_handle_has_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 423:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_ambient_viewing_environment =
+  hs_bindgen_e0f6f90369de190f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_03f4b4f3734ca3eb" hs_bindgen_03f4b4f3734ca3eb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_ambient_viewing_environment@
+hs_bindgen_03f4b4f3734ca3eb ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_03f4b4f3734ca3eb =
+  BG.fromFFIType hs_bindgen_03f4b4f3734ca3eb_base
+
+{-| __C declaration:__ @heif_image_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 427:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_get_ambient_viewing_environment =
+  hs_bindgen_03f4b4f3734ca3eb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_dd1f30e9a69dbd49" hs_bindgen_dd1f30e9a69dbd49_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ambient_viewing_environment@
+hs_bindgen_dd1f30e9a69dbd49 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+  -> IO BG.CInt
+hs_bindgen_dd1f30e9a69dbd49 =
+  BG.fromFFIType hs_bindgen_dd1f30e9a69dbd49_base
+
+{-| __C declaration:__ @heif_image_handle_get_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 431:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_ambient_viewing_environment =
+  hs_bindgen_dd1f30e9a69dbd49
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_81030adb575665fe" hs_bindgen_81030adb575665fe_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_ambient_viewing_environment@
+hs_bindgen_81030adb575665fe ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_81030adb575665fe =
+  BG.fromFFIType hs_bindgen_81030adb575665fe_base
+
+{-| __C declaration:__ @heif_image_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 434:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_set_ambient_viewing_environment =
+  hs_bindgen_81030adb575665fe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_ambient_viewing_environment@
+foreign import ccall unsafe "hs_bindgen_13c2a075b1cf7bd8" hs_bindgen_13c2a075b1cf7bd8_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_ambient_viewing_environment@
+hs_bindgen_13c2a075b1cf7bd8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+  -> IO ()
+hs_bindgen_13c2a075b1cf7bd8 =
+  BG.fromFFIType hs_bindgen_13c2a075b1cf7bd8_base
+
+{-| __C declaration:__ @heif_image_handle_set_ambient_viewing_environment@
+
+    __defined at:__ @libheif\/heif_color.h 437:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_ambient_viewing_environment ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_ambient_viewing_environment
+     -- ^ __C declaration:__ @in@
+  -> IO ()
+heif_image_handle_set_ambient_viewing_environment =
+  hs_bindgen_13c2a075b1cf7bd8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_7dd186fbfd6b464a" hs_bindgen_7dd186fbfd6b464a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_has_nominal_diffuse_white_luminance@
+hs_bindgen_7dd186fbfd6b464a ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+hs_bindgen_7dd186fbfd6b464a =
+  BG.fromFFIType hs_bindgen_7dd186fbfd6b464a_base
+
+{-| __C declaration:__ @heif_image_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 450:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO BG.CInt
+heif_image_has_nominal_diffuse_white_luminance =
+  hs_bindgen_7dd186fbfd6b464a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_edcedf5e2ff9fd31" hs_bindgen_edcedf5e2ff9fd31_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_nominal_diffuse_white_luminance@
+hs_bindgen_edcedf5e2ff9fd31 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_edcedf5e2ff9fd31 =
+  BG.fromFFIType hs_bindgen_edcedf5e2ff9fd31_base
+
+{-| __C declaration:__ @heif_image_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 453:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_nominal_diffuse_white_luminance =
+  hs_bindgen_edcedf5e2ff9fd31
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_a37f8bb02787e019" hs_bindgen_a37f8bb02787e019_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_nominal_diffuse_white_luminance@
+hs_bindgen_a37f8bb02787e019 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_a37f8bb02787e019 =
+  BG.fromFFIType hs_bindgen_a37f8bb02787e019_base
+
+{-| __C declaration:__ @heif_image_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 456:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_set_nominal_diffuse_white_luminance =
+  hs_bindgen_a37f8bb02787e019
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_11ca3842cb553804" hs_bindgen_11ca3842cb553804_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_nominal_diffuse_white_luminance@
+hs_bindgen_11ca3842cb553804 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_11ca3842cb553804 =
+  BG.fromFFIType hs_bindgen_11ca3842cb553804_base
+
+{-| __C declaration:__ @heif_image_handle_has_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 459:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_nominal_diffuse_white_luminance =
+  hs_bindgen_11ca3842cb553804
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_24cee4290ffa0920" hs_bindgen_24cee4290ffa0920_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_nominal_diffuse_white_luminance@
+hs_bindgen_24cee4290ffa0920 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_24cee4290ffa0920 =
+  BG.fromFFIType hs_bindgen_24cee4290ffa0920_base
+
+{-| __C declaration:__ @heif_image_handle_get_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 462:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_nominal_diffuse_white_luminance =
+  hs_bindgen_24cee4290ffa0920
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_nominal_diffuse_white_luminance@
+foreign import ccall unsafe "hs_bindgen_4e00c9ca70a6fd07" hs_bindgen_4e00c9ca70a6fd07_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_nominal_diffuse_white_luminance@
+hs_bindgen_4e00c9ca70a6fd07 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_4e00c9ca70a6fd07 =
+  BG.fromFFIType hs_bindgen_4e00c9ca70a6fd07_base
+
+{-| __C declaration:__ @heif_image_handle_set_nominal_diffuse_white_luminance@
+
+    __defined at:__ @libheif\/heif_color.h 465:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_nominal_diffuse_white_luminance ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @luminance@
+  -> IO ()
+heif_image_handle_set_nominal_diffuse_white_luminance =
+  hs_bindgen_4e00c9ca70a6fd07
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_mastering_display_colour_volume_decode@
+foreign import ccall unsafe "hs_bindgen_9c0e93af53ba356a" hs_bindgen_9c0e93af53ba356a_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_mastering_display_colour_volume_decode@
+hs_bindgen_9c0e93af53ba356a ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9c0e93af53ba356a =
+  BG.fromFFIType hs_bindgen_9c0e93af53ba356a_base
+
+{-| __C declaration:__ @heif_mastering_display_colour_volume_decode@
+
+    __defined at:__ @libheif\/heif_color.h 472:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_mastering_display_colour_volume_decode ::
+     PtrConst.PtrConst Heif_mastering_display_colour_volume
+     -- ^ __C declaration:__ @in@
+  -> BG.Ptr Heif_decoded_mastering_display_colour_volume
+     -- ^ __C declaration:__ @out@
+  -> IO Heif_error
+heif_mastering_display_colour_volume_decode =
+  \in'0 ->
+    \out1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_9c0e93af53ba356a in'0 out1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_main_brand@
+foreign import ccall unsafe "hs_bindgen_cb3b0a44d4aad6a4" hs_bindgen_cb3b0a44d4aad6a4_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_main_brand@
+hs_bindgen_cb3b0a44d4aad6a4 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_cb3b0a44d4aad6a4 =
+  BG.fromFFIType hs_bindgen_cb3b0a44d4aad6a4_base
+
+{-| __C declaration:__ @heif_read_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 269:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_main_brand = hs_bindgen_cb3b0a44d4aad6a4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_minor_version_brand@
+foreign import ccall unsafe "hs_bindgen_46a8a8e54f91d91a" hs_bindgen_46a8a8e54f91d91a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_read_minor_version_brand@
+hs_bindgen_46a8a8e54f91d91a ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand2
+hs_bindgen_46a8a8e54f91d91a =
+  BG.fromFFIType hs_bindgen_46a8a8e54f91d91a_base
+
+{-| __C declaration:__ @heif_read_minor_version_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 273:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_read_minor_version_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand2
+heif_read_minor_version_brand =
+  hs_bindgen_46a8a8e54f91d91a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_fourcc_to_brand@
+foreign import ccall unsafe "hs_bindgen_ec7439ef34aa82ca" hs_bindgen_ec7439ef34aa82ca_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_fourcc_to_brand@
+hs_bindgen_ec7439ef34aa82ca ::
+     PtrConst.PtrConst BG.CChar
+  -> IO Heif_brand2
+hs_bindgen_ec7439ef34aa82ca =
+  BG.fromFFIType hs_bindgen_ec7439ef34aa82ca_base
+
+{-| __C declaration:__ @heif_fourcc_to_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 277:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_fourcc_to_brand ::
+     PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO Heif_brand2
+heif_fourcc_to_brand = hs_bindgen_ec7439ef34aa82ca
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_brand_to_fourcc@
+foreign import ccall unsafe "hs_bindgen_f3063904ab900b28" hs_bindgen_f3063904ab900b28_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_brand_to_fourcc@
+hs_bindgen_f3063904ab900b28 ::
+     Heif_brand2
+  -> BG.Ptr BG.CChar
+  -> IO ()
+hs_bindgen_f3063904ab900b28 =
+  BG.fromFFIType hs_bindgen_f3063904ab900b28_base
+
+{-| __C declaration:__ @heif_brand_to_fourcc@
+
+    __defined at:__ @libheif\/heif_brands.h 281:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_brand_to_fourcc ::
+     Heif_brand2
+     -- ^ __C declaration:__ @brand@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @out_fourcc@
+  -> IO ()
+heif_brand_to_fourcc = hs_bindgen_f3063904ab900b28
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_f9382ea7accf2318" hs_bindgen_f9382ea7accf2318_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_brand@
+hs_bindgen_f9382ea7accf2318 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_f9382ea7accf2318 =
+  BG.fromFFIType hs_bindgen_f9382ea7accf2318_base
+
+{-| __C declaration:__ @heif_has_compatible_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 289:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @brand_fourcc@
+  -> IO BG.CInt
+heif_has_compatible_brand =
+  hs_bindgen_f9382ea7accf2318
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_list_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_db37863ff0bc30e9" hs_bindgen_db37863ff0bc30e9_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_list_compatible_brands@
+hs_bindgen_db37863ff0bc30e9 ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_db37863ff0bc30e9 =
+  BG.fromFFIType hs_bindgen_db37863ff0bc30e9_base
+
+{-| __C declaration:__ @heif_list_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 294:19@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_list_compatible_brands ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> BG.Ptr (BG.Ptr Heif_brand2)
+     -- ^ __C declaration:__ @out_brands@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_size@
+  -> IO Heif_error
+heif_list_compatible_brands =
+  \data'0 ->
+    \len1 ->
+      \out_brands2 ->
+        \out_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_db37863ff0bc30e9 data'0 len1 out_brands2 out_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_list_of_compatible_brands@
+foreign import ccall unsafe "hs_bindgen_0bf00e8ab2fd5553" hs_bindgen_0bf00e8ab2fd5553_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_free_list_of_compatible_brands@
+hs_bindgen_0bf00e8ab2fd5553 ::
+     BG.Ptr Heif_brand2
+  -> IO ()
+hs_bindgen_0bf00e8ab2fd5553 =
+  BG.fromFFIType hs_bindgen_0bf00e8ab2fd5553_base
+
+{-| __C declaration:__ @heif_free_list_of_compatible_brands@
+
+    __defined at:__ @libheif\/heif_brands.h 297:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_free_list_of_compatible_brands ::
+     BG.Ptr Heif_brand2
+     -- ^ __C declaration:__ @brands_list@
+  -> IO ()
+heif_free_list_of_compatible_brands =
+  hs_bindgen_0bf00e8ab2fd5553
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_file_mime_type@
+foreign import ccall unsafe "hs_bindgen_083f69c89da808ac" hs_bindgen_083f69c89da808ac_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_file_mime_type@
+hs_bindgen_083f69c89da808ac ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_083f69c89da808ac =
+  BG.fromFFIType hs_bindgen_083f69c89da808ac_base
+
+{-| __C declaration:__ @heif_get_file_mime_type@
+
+    __defined at:__ @libheif\/heif_brands.h 318:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_file_mime_type ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_get_file_mime_type = hs_bindgen_083f69c89da808ac
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_filetype@
+foreign import ccall unsafe "hs_bindgen_2c11695134f8ae7a" hs_bindgen_2c11695134f8ae7a_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_filetype@
+hs_bindgen_2c11695134f8ae7a ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_filetype_result
+hs_bindgen_2c11695134f8ae7a =
+  BG.fromFFIType hs_bindgen_2c11695134f8ae7a_base
+
+{-| __C declaration:__ @heif_check_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 333:27@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_filetype_result
+heif_check_filetype = hs_bindgen_2c11695134f8ae7a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_filetype@
+foreign import ccall unsafe "hs_bindgen_2e7bbe04a9324a3c" hs_bindgen_2e7bbe04a9324a3c_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_has_compatible_filetype@
+hs_bindgen_2e7bbe04a9324a3c ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_2e7bbe04a9324a3c =
+  BG.fromFFIType hs_bindgen_2e7bbe04a9324a3c_base
+
+{-| __C declaration:__ @heif_has_compatible_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 345:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_has_compatible_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_error
+heif_has_compatible_filetype =
+  \data'0 ->
+    \len1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_2e7bbe04a9324a3c data'0 len1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_jpeg_filetype@
+foreign import ccall unsafe "hs_bindgen_38f46e68912e8abc" hs_bindgen_38f46e68912e8abc_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_check_jpeg_filetype@
+hs_bindgen_38f46e68912e8abc ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_38f46e68912e8abc =
+  BG.fromFFIType hs_bindgen_38f46e68912e8abc_base
+
+{-| __C declaration:__ @heif_check_jpeg_filetype@
+
+    __defined at:__ @libheif\/heif_brands.h 348:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_check_jpeg_filetype ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO BG.CInt
+heif_check_jpeg_filetype =
+  hs_bindgen_38f46e68912e8abc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_main_brand@
+foreign import ccall unsafe "hs_bindgen_fdd065dc05fa657e" hs_bindgen_fdd065dc05fa657e_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_main_brand@
+hs_bindgen_fdd065dc05fa657e ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+  -> BG.CInt
+  -> IO Heif_brand
+hs_bindgen_fdd065dc05fa657e =
+  BG.fromFFIType hs_bindgen_fdd065dc05fa657e_base
+
+{-| __C declaration:__ @heif_main_brand@
+
+    __defined at:__ @libheif\/heif_brands.h 379:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_main_brand ::
+     PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @len@
+  -> IO Heif_brand
+heif_main_brand = hs_bindgen_fdd065dc05fa657e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_metadata_compression_method_supported@
+foreign import ccall unsafe "hs_bindgen_99b5ad50a3519f42" hs_bindgen_99b5ad50a3519f42_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_metadata_compression_method_supported@
+hs_bindgen_99b5ad50a3519f42 ::
+     Heif_metadata_compression
+  -> IO BG.CInt
+hs_bindgen_99b5ad50a3519f42 =
+  BG.fromFFIType hs_bindgen_99b5ad50a3519f42_base
+
+{-| __C declaration:__ @heif_metadata_compression_method_supported@
+
+    __defined at:__ @libheif\/heif_metadata.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_metadata_compression_method_supported ::
+     Heif_metadata_compression
+     -- ^ __C declaration:__ @method@
+  -> IO BG.CInt
+heif_metadata_compression_method_supported =
+  hs_bindgen_99b5ad50a3519f42
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_metadata_blocks@
+foreign import ccall unsafe "hs_bindgen_ed1b3c7730ce9adc" hs_bindgen_ed1b3c7730ce9adc_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_metadata_blocks@
+hs_bindgen_ed1b3c7730ce9adc ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_ed1b3c7730ce9adc =
+  BG.fromFFIType hs_bindgen_ed1b3c7730ce9adc_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_metadata_blocks@
+
+    __defined at:__ @libheif\/heif_metadata.h 49:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_metadata_blocks ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_metadata_blocks =
+  hs_bindgen_ed1b3c7730ce9adc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_metadata_block_IDs@
+foreign import ccall unsafe "hs_bindgen_ff545c340ebcc9e1" hs_bindgen_ff545c340ebcc9e1_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_metadata_block_IDs@
+hs_bindgen_ff545c340ebcc9e1 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_ff545c340ebcc9e1 =
+  BG.fromFFIType hs_bindgen_ff545c340ebcc9e1_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_metadata_block_IDs@
+
+    __defined at:__ @libheif\/heif_metadata.h 55:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_metadata_block_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @type_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_metadata_block_IDs =
+  hs_bindgen_ff545c340ebcc9e1
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_type@
+foreign import ccall unsafe "hs_bindgen_5b79154e3bf116be" hs_bindgen_5b79154e3bf116be_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_type@
+hs_bindgen_5b79154e3bf116be ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_5b79154e3bf116be =
+  BG.fromFFIType hs_bindgen_5b79154e3bf116be_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 64:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_type =
+  hs_bindgen_5b79154e3bf116be
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_content_type@
+foreign import ccall unsafe "hs_bindgen_93d17d0350046b0f" hs_bindgen_93d17d0350046b0f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_content_type@
+hs_bindgen_93d17d0350046b0f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_93d17d0350046b0f =
+  BG.fromFFIType hs_bindgen_93d17d0350046b0f_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_content_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 70:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_content_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_content_type =
+  hs_bindgen_93d17d0350046b0f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_size@
+foreign import ccall unsafe "hs_bindgen_e0031552d6b50a40" hs_bindgen_e0031552d6b50a40_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_size@
+hs_bindgen_e0031552d6b50a40 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO HsBindgen.Runtime.LibC.CSize
+hs_bindgen_e0031552d6b50a40 =
+  BG.fromFFIType hs_bindgen_e0031552d6b50a40_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_size@
+
+    __defined at:__ @libheif\/heif_metadata.h 75:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_size ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO HsBindgen.Runtime.LibC.CSize
+heif_image_handle_get_metadata_size =
+  hs_bindgen_e0031552d6b50a40
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata@
+foreign import ccall unsafe "hs_bindgen_bf83eab617592597" hs_bindgen_bf83eab617592597_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata@
+hs_bindgen_bf83eab617592597 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_bf83eab617592597 =
+  BG.fromFFIType hs_bindgen_bf83eab617592597_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 83:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @out_data@
+  -> IO Heif_error
+heif_image_handle_get_metadata =
+  \handle0 ->
+    \metadata_id1 ->
+      \out_data2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_bf83eab617592597 handle0 metadata_id1 out_data2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_item_uri_type@
+foreign import ccall unsafe "hs_bindgen_2bda88c8a294819f" hs_bindgen_2bda88c8a294819f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_metadata_item_uri_type@
+hs_bindgen_2bda88c8a294819f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_2bda88c8a294819f =
+  BG.fromFFIType hs_bindgen_2bda88c8a294819f_base
+
+{-| __C declaration:__ @heif_image_handle_get_metadata_item_uri_type@
+
+    __defined at:__ @libheif\/heif_metadata.h 89:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_metadata_item_uri_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @metadata_id@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_metadata_item_uri_type =
+  hs_bindgen_2bda88c8a294819f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_exif_metadata@
+foreign import ccall unsafe "hs_bindgen_8cc5bc61773d6f99" hs_bindgen_8cc5bc61773d6f99_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_exif_metadata@
+hs_bindgen_8cc5bc61773d6f99 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8cc5bc61773d6f99 =
+  BG.fromFFIType hs_bindgen_8cc5bc61773d6f99_base
+
+{-| __C declaration:__ @heif_context_add_exif_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 96:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_exif_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_exif_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_8cc5bc61773d6f99 x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata@
+foreign import ccall unsafe "hs_bindgen_43ab7c8e6e51b6f6" hs_bindgen_43ab7c8e6e51b6f6_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata@
+hs_bindgen_43ab7c8e6e51b6f6 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_43ab7c8e6e51b6f6 =
+  BG.fromFFIType hs_bindgen_43ab7c8e6e51b6f6_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> IO Heif_error
+heif_context_add_XMP_metadata =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_43ab7c8e6e51b6f6 x0 image_handle1 data'2 size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata2@
+foreign import ccall unsafe "hs_bindgen_690fe9f2d3331fbe" hs_bindgen_690fe9f2d3331fbe_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_XMP_metadata2@
+hs_bindgen_690fe9f2d3331fbe ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> Heif_metadata_compression
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_690fe9f2d3331fbe =
+  BG.fromFFIType hs_bindgen_690fe9f2d3331fbe_base
+
+{-| __C declaration:__ @heif_context_add_XMP_metadata2@
+
+    __defined at:__ @libheif\/heif_metadata.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_XMP_metadata2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> Heif_metadata_compression
+     -- ^ __C declaration:__ @compression@
+  -> IO Heif_error
+heif_context_add_XMP_metadata2 =
+  \x0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \compression4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_690fe9f2d3331fbe x0 image_handle1 data'2 size3 compression4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_metadata@
+foreign import ccall unsafe "hs_bindgen_43798e780a11e8ae" hs_bindgen_43798e780a11e8ae_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_metadata@
+hs_bindgen_43798e780a11e8ae ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_43798e780a11e8ae =
+  BG.fromFFIType hs_bindgen_43798e780a11e8ae_base
+
+{-| __C declaration:__ @heif_context_add_generic_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_type@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_type@
+  -> IO Heif_error
+heif_context_add_generic_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_type4 ->
+            \content_type5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_43798e780a11e8ae ctx0 image_handle1 data'2 size3 item_type4 content_type5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_uri_metadata@
+foreign import ccall unsafe "hs_bindgen_6f6e7853ece6bfaf" hs_bindgen_6f6e7853ece6bfaf_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_generic_uri_metadata@
+hs_bindgen_6f6e7853ece6bfaf ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst BG.Void
+  -> BG.CInt
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6f6e7853ece6bfaf =
+  BG.fromFFIType hs_bindgen_6f6e7853ece6bfaf_base
+
+{-| __C declaration:__ @heif_context_add_generic_uri_metadata@
+
+    __defined at:__ @libheif\/heif_metadata.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_generic_uri_metadata ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @data@
+  -> BG.CInt
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @item_uri_type@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_item_id@
+  -> IO Heif_error
+heif_context_add_generic_uri_metadata =
+  \ctx0 ->
+    \image_handle1 ->
+      \data'2 ->
+        \size3 ->
+          \item_uri_type4 ->
+            \out_item_id5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_6f6e7853ece6bfaf ctx0 image_handle1 data'2 size3 item_uri_type4 out_item_id5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_depth_image@
+foreign import ccall unsafe "hs_bindgen_ef96d03b5ecf889c" hs_bindgen_ef96d03b5ecf889c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_depth_image@
+hs_bindgen_ef96d03b5ecf889c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_ef96d03b5ecf889c =
+  BG.fromFFIType hs_bindgen_ef96d03b5ecf889c_base
+
+{-| __C declaration:__ @heif_image_handle_has_depth_image@
+
+    __defined at:__ @libheif\/heif_aux_images.h 39:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_depth_image ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_depth_image =
+  hs_bindgen_ef96d03b5ecf889c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_depth_images@
+foreign import ccall unsafe "hs_bindgen_4c02e1b7273148ce" hs_bindgen_4c02e1b7273148ce_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_depth_images@
+hs_bindgen_4c02e1b7273148ce ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_4c02e1b7273148ce =
+  BG.fromFFIType hs_bindgen_4c02e1b7273148ce_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_depth_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 42:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_depth_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_depth_images =
+  hs_bindgen_4c02e1b7273148ce
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_depth_image_IDs@
+foreign import ccall unsafe "hs_bindgen_46dac6a04d58d802" hs_bindgen_46dac6a04d58d802_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_depth_image_IDs@
+hs_bindgen_46dac6a04d58d802 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_46dac6a04d58d802 =
+  BG.fromFFIType hs_bindgen_46dac6a04d58d802_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_depth_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 45:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_depth_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_depth_image_IDs =
+  hs_bindgen_46dac6a04d58d802
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_handle@
+foreign import ccall unsafe "hs_bindgen_530a9c047a8545b8" hs_bindgen_530a9c047a8545b8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_handle@
+hs_bindgen_530a9c047a8545b8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_530a9c047a8545b8 =
+  BG.fromFFIType hs_bindgen_530a9c047a8545b8_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 49:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_depth_handle@
+  -> IO Heif_error
+heif_image_handle_get_depth_image_handle =
+  \handle0 ->
+    \depth_image_id1 ->
+      \out_depth_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_530a9c047a8545b8 handle0 depth_image_id1 out_depth_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_depth_representation_info_free@
+foreign import ccall unsafe "hs_bindgen_029d797a2655b5de" hs_bindgen_029d797a2655b5de_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_depth_representation_info_free@
+hs_bindgen_029d797a2655b5de ::
+     PtrConst.PtrConst Heif_depth_representation_info
+  -> IO ()
+hs_bindgen_029d797a2655b5de =
+  BG.fromFFIType hs_bindgen_029d797a2655b5de_base
+
+{-| __C declaration:__ @heif_depth_representation_info_free@
+
+    __defined at:__ @libheif\/heif_aux_images.h 87:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_depth_representation_info_free ::
+     PtrConst.PtrConst Heif_depth_representation_info
+     -- ^ __C declaration:__ @info@
+  -> IO ()
+heif_depth_representation_info_free =
+  hs_bindgen_029d797a2655b5de
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_representation_info@
+foreign import ccall unsafe "hs_bindgen_a73687120cab3c71" hs_bindgen_a73687120cab3c71_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_depth_image_representation_info@
+hs_bindgen_a73687120cab3c71 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+  -> IO BG.CInt
+hs_bindgen_a73687120cab3c71 =
+  BG.fromFFIType hs_bindgen_a73687120cab3c71_base
+
+{-| __C declaration:__ @heif_image_handle_get_depth_image_representation_info@
+
+    __defined at:__ @libheif\/heif_aux_images.h 95:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_depth_image_representation_info ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @depth_image_id@
+  -> BG.Ptr (PtrConst.PtrConst Heif_depth_representation_info)
+     -- ^ __C declaration:__ @out@
+  -> IO BG.CInt
+heif_image_handle_get_depth_image_representation_info =
+  hs_bindgen_a73687120cab3c71
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_thumbnails@
+foreign import ccall unsafe "hs_bindgen_3b94607899266366" hs_bindgen_3b94607899266366_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_thumbnails@
+hs_bindgen_3b94607899266366 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_3b94607899266366 =
+  BG.fromFFIType hs_bindgen_3b94607899266366_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_thumbnails@
+
+    __defined at:__ @libheif\/heif_aux_images.h 105:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_thumbnails ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_thumbnails =
+  hs_bindgen_3b94607899266366
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_thumbnail_IDs@
+foreign import ccall unsafe "hs_bindgen_12436f324557ab0b" hs_bindgen_12436f324557ab0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_thumbnail_IDs@
+hs_bindgen_12436f324557ab0b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_12436f324557ab0b =
+  BG.fromFFIType hs_bindgen_12436f324557ab0b_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_thumbnail_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 108:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_thumbnail_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_thumbnail_IDs =
+  hs_bindgen_12436f324557ab0b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_thumbnail@
+foreign import ccall unsafe "hs_bindgen_cbd2548e91d4b099" hs_bindgen_cbd2548e91d4b099_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_thumbnail@
+hs_bindgen_cbd2548e91d4b099 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_cbd2548e91d4b099 =
+  BG.fromFFIType hs_bindgen_cbd2548e91d4b099_base
+
+{-| __C declaration:__ @heif_image_handle_get_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 113:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_thumbnail ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @thumbnail_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumbnail_handle@
+  -> IO Heif_error
+heif_image_handle_get_thumbnail =
+  \main_image_handle0 ->
+    \thumbnail_id1 ->
+      \out_thumbnail_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_cbd2548e91d4b099 main_image_handle0 thumbnail_id1 out_thumbnail_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_thumbnail@
+foreign import ccall unsafe "hs_bindgen_d7fa83d73e654632" hs_bindgen_d7fa83d73e654632_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_thumbnail@
+hs_bindgen_d7fa83d73e654632 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.CInt
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d7fa83d73e654632 =
+  BG.fromFFIType hs_bindgen_d7fa83d73e654632_base
+
+{-| __C declaration:__ @heif_context_encode_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 126:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image_handle@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bbox_size@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_thumb_image_handle@
+  -> IO Heif_error
+heif_context_encode_thumbnail =
+  \x0 ->
+    \image1 ->
+      \master_image_handle2 ->
+        \encoder3 ->
+          \options4 ->
+            \bbox_size5 ->
+              \out_thumb_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_d7fa83d73e654632 x0 image1 master_image_handle2 encoder3 options4 bbox_size5 out_thumb_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_assign_thumbnail@
+foreign import ccall unsafe "hs_bindgen_b6b843db159f83b1" hs_bindgen_b6b843db159f83b1_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_assign_thumbnail@
+hs_bindgen_b6b843db159f83b1 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+  -> PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b6b843db159f83b1 =
+  BG.fromFFIType hs_bindgen_b6b843db159f83b1_base
+
+{-| __C declaration:__ @heif_context_assign_thumbnail@
+
+    __defined at:__ @libheif\/heif_aux_images.h 136:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_assign_thumbnail ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @master_image@
+  -> PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @thumbnail_image@
+  -> IO Heif_error
+heif_context_assign_thumbnail =
+  \x0 ->
+    \master_image1 ->
+      \thumbnail_image2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_b6b843db159f83b1 x0 master_image1 thumbnail_image2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_auxiliary_images@
+foreign import ccall unsafe "hs_bindgen_a07388633c39d124" hs_bindgen_a07388633c39d124_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_auxiliary_images@
+hs_bindgen_a07388633c39d124 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_a07388633c39d124 =
+  BG.fromFFIType hs_bindgen_a07388633c39d124_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_auxiliary_images@
+
+    __defined at:__ @libheif\/heif_aux_images.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_auxiliary_images ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> IO BG.CInt
+heif_image_handle_get_number_of_auxiliary_images =
+  hs_bindgen_a07388633c39d124
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+foreign import ccall unsafe "hs_bindgen_7826be70e6d91574" hs_bindgen_7826be70e6d91574_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_list_of_auxiliary_image_IDs@
+hs_bindgen_7826be70e6d91574 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_7826be70e6d91574 =
+  BG.fromFFIType hs_bindgen_7826be70e6d91574_base
+
+{-| __C declaration:__ @heif_image_handle_get_list_of_auxiliary_image_IDs@
+
+    __defined at:__ @libheif\/heif_aux_images.h 152:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_list_of_auxiliary_image_IDs ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @aux_filter@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ids@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_image_handle_get_list_of_auxiliary_image_IDs =
+  hs_bindgen_7826be70e6d91574
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_f6bf51713dbde24e" hs_bindgen_f6bf51713dbde24e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_type@
+hs_bindgen_f6bf51713dbde24e ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_f6bf51713dbde24e =
+  BG.fromFFIType hs_bindgen_f6bf51713dbde24e_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 158:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_type =
+  \handle0 ->
+    \out_type1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_f6bf51713dbde24e handle0 out_type1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release_auxiliary_type@
+foreign import ccall unsafe "hs_bindgen_03aca62850d5d65f" hs_bindgen_03aca62850d5d65f_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release_auxiliary_type@
+hs_bindgen_03aca62850d5d65f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_03aca62850d5d65f =
+  BG.fromFFIType hs_bindgen_03aca62850d5d65f_base
+
+{-| __C declaration:__ @heif_image_handle_release_auxiliary_type@
+
+    __defined at:__ @libheif\/heif_aux_images.h 162:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release_auxiliary_type ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_release_auxiliary_type =
+  hs_bindgen_03aca62850d5d65f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_image_handle@
+foreign import ccall unsafe "hs_bindgen_38168275ff826772" hs_bindgen_38168275ff826772_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_auxiliary_image_handle@
+hs_bindgen_38168275ff826772 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_38168275ff826772 =
+  BG.fromFFIType hs_bindgen_38168275ff826772_base
+
+{-| __C declaration:__ @heif_image_handle_get_auxiliary_image_handle@
+
+    __defined at:__ @libheif\/heif_aux_images.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_auxiliary_image_handle ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @main_image_handle@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @auxiliary_id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_auxiliary_handle@
+  -> IO Heif_error
+heif_image_handle_get_auxiliary_image_handle =
+  \main_image_handle0 ->
+    \auxiliary_id1 ->
+      \out_auxiliary_handle2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_38168275ff826772 main_image_handle0 auxiliary_id1 out_auxiliary_handle2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_free_auxiliary_types@
+foreign import ccall unsafe "hs_bindgen_6f5a921cd33ac8ee" hs_bindgen_6f5a921cd33ac8ee_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_free_auxiliary_types@
+hs_bindgen_6f5a921cd33ac8ee ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+  -> IO ()
+hs_bindgen_6f5a921cd33ac8ee =
+  BG.fromFFIType hs_bindgen_6f5a921cd33ac8ee_base
+
+{-| __C declaration:__ @heif_image_handle_free_auxiliary_types@
+
+    __defined at:__ @libheif\/heif_aux_images.h 175:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_free_auxiliary_types ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.Ptr (PtrConst.PtrConst BG.CChar)
+     -- ^ __C declaration:__ @out_type@
+  -> IO ()
+heif_image_handle_free_auxiliary_types =
+  hs_bindgen_6f5a921cd33ac8ee
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_entity_groups@
+foreign import ccall unsafe "hs_bindgen_ae6bb46cb10ef49b" hs_bindgen_ae6bb46cb10ef49b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_entity_groups@
+hs_bindgen_ae6bb46cb10ef49b ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> Heif_item_id
+  -> BG.Ptr BG.CInt
+  -> IO (BG.Ptr Heif_entity_group)
+hs_bindgen_ae6bb46cb10ef49b =
+  BG.fromFFIType hs_bindgen_ae6bb46cb10ef49b_base
+
+{-| __C declaration:__ @heif_context_get_entity_groups@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 46:20@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_entity_groups ::
+     PtrConst.PtrConst Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @type_filter@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @item_filter@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @out_num_groups@
+  -> IO (BG.Ptr Heif_entity_group)
+heif_context_get_entity_groups =
+  hs_bindgen_ae6bb46cb10ef49b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_entity_groups_release@
+foreign import ccall unsafe "hs_bindgen_ccbaf41a25b5fc17" hs_bindgen_ccbaf41a25b5fc17_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_entity_groups_release@
+hs_bindgen_ccbaf41a25b5fc17 ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_ccbaf41a25b5fc17 =
+  BG.fromFFIType hs_bindgen_ccbaf41a25b5fc17_base
+
+{-| __C declaration:__ @heif_entity_groups_release@
+
+    __defined at:__ @libheif\/heif_entity_groups.h 53:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_entity_groups_release ::
+     BG.Ptr Heif_entity_group
+  -> BG.CInt
+     -- ^ __C declaration:__ @num_groups@
+  -> IO ()
+heif_entity_groups_release =
+  hs_bindgen_ccbaf41a25b5fc17
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_global_security_limits@
+foreign import ccall unsafe "hs_bindgen_0bd62767a85d72e4" hs_bindgen_0bd62767a85d72e4_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_global_security_limits@
+hs_bindgen_0bd62767a85d72e4 :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_0bd62767a85d72e4 =
+  BG.fromFFIType hs_bindgen_0bd62767a85d72e4_base
+
+{-| __C declaration:__ @heif_get_global_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 94:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_global_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_global_security_limits =
+  hs_bindgen_0bd62767a85d72e4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_disabled_security_limits@
+foreign import ccall unsafe "hs_bindgen_1898bc2f36224985" hs_bindgen_1898bc2f36224985_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_disabled_security_limits@
+hs_bindgen_1898bc2f36224985 :: IO (PtrConst.PtrConst Heif_security_limits)
+hs_bindgen_1898bc2f36224985 =
+  BG.fromFFIType hs_bindgen_1898bc2f36224985_base
+
+{-| __C declaration:__ @heif_get_disabled_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 98:29@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_disabled_security_limits :: IO (PtrConst.PtrConst Heif_security_limits)
+heif_get_disabled_security_limits =
+  hs_bindgen_1898bc2f36224985
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_security_limits@
+foreign import ccall unsafe "hs_bindgen_2a5ca5c742b8d454" hs_bindgen_2a5ca5c742b8d454_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_security_limits@
+hs_bindgen_2a5ca5c742b8d454 ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+hs_bindgen_2a5ca5c742b8d454 =
+  BG.fromFFIType hs_bindgen_2a5ca5c742b8d454_base
+
+{-| __C declaration:__ @heif_context_get_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 103:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_security_limits ::
+     PtrConst.PtrConst Heif_context
+  -> IO (BG.Ptr Heif_security_limits)
+heif_context_get_security_limits =
+  hs_bindgen_2a5ca5c742b8d454
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_security_limits@
+foreign import ccall unsafe "hs_bindgen_8ac69b76d966cf30" hs_bindgen_8ac69b76d966cf30_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_security_limits@
+hs_bindgen_8ac69b76d966cf30 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_8ac69b76d966cf30 =
+  BG.fromFFIType hs_bindgen_8ac69b76d966cf30_base
+
+{-| __C declaration:__ @heif_context_set_security_limits@
+
+    __defined at:__ @libheif\/heif_security.h 108:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_security_limits ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_security_limits
+  -> IO Heif_error
+heif_context_set_security_limits =
+  \x0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_8ac69b76d966cf30 x0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_maximum_image_size_limit@
+foreign import ccall unsafe "hs_bindgen_63f91ddf3fdf9157" hs_bindgen_63f91ddf3fdf9157_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_maximum_image_size_limit@
+hs_bindgen_63f91ddf3fdf9157 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_63f91ddf3fdf9157 =
+  BG.fromFFIType hs_bindgen_63f91ddf3fdf9157_base
+
+{-| __C declaration:__ @heif_context_set_maximum_image_size_limit@
+
+    __defined at:__ @libheif\/heif_security.h 117:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_maximum_image_size_limit ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @maximum_width@
+  -> IO ()
+heif_context_set_maximum_image_size_limit =
+  hs_bindgen_63f91ddf3fdf9157
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_alloc@
+foreign import ccall unsafe "hs_bindgen_5072fed60822f439" hs_bindgen_5072fed60822f439_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_alloc@
+hs_bindgen_5072fed60822f439 :: IO (BG.Ptr Heif_context)
+hs_bindgen_5072fed60822f439 =
+  BG.fromFFIType hs_bindgen_5072fed60822f439_base
+
+{-| __C declaration:__ @heif_context_alloc@
+
+    __defined at:__ @libheif\/heif_context.h 130:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_alloc :: IO (BG.Ptr Heif_context)
+heif_context_alloc = hs_bindgen_5072fed60822f439
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_free@
+foreign import ccall unsafe "hs_bindgen_d4224d2b144531cf" hs_bindgen_d4224d2b144531cf_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_free@
+hs_bindgen_d4224d2b144531cf ::
+     BG.Ptr Heif_context
+  -> IO ()
+hs_bindgen_d4224d2b144531cf =
+  BG.fromFFIType hs_bindgen_d4224d2b144531cf_base
+
+{-| __C declaration:__ @heif_context_free@
+
+    __defined at:__ @libheif\/heif_context.h 134:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_free ::
+     BG.Ptr Heif_context
+  -> IO ()
+heif_context_free = hs_bindgen_d4224d2b144531cf
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_file@
+foreign import ccall unsafe "hs_bindgen_6a121ee485ba22bf" hs_bindgen_6a121ee485ba22bf_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_file@
+hs_bindgen_6a121ee485ba22bf ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6a121ee485ba22bf =
+  BG.fromFFIType hs_bindgen_6a121ee485ba22bf_base
+
+{-| __C declaration:__ @heif_context_read_from_file@
+
+    __defined at:__ @libheif\/heif_context.h 237:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_file =
+  \x0 ->
+    \filename1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_6a121ee485ba22bf x0 filename1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory@
+foreign import ccall unsafe "hs_bindgen_174457bbb7c8bbd2" hs_bindgen_174457bbb7c8bbd2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory@
+hs_bindgen_174457bbb7c8bbd2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_174457bbb7c8bbd2 =
+  BG.fromFFIType hs_bindgen_174457bbb7c8bbd2_base
+
+{-| __C declaration:__ @heif_context_read_from_memory@
+
+    __defined at:__ @libheif\/heif_context.h 244:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_174457bbb7c8bbd2 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory_without_copy@
+foreign import ccall unsafe "hs_bindgen_fcf75bd82a2068c9" hs_bindgen_fcf75bd82a2068c9_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_memory_without_copy@
+hs_bindgen_fcf75bd82a2068c9 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+  -> HsBindgen.Runtime.LibC.CSize
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_fcf75bd82a2068c9 =
+  BG.fromFFIType hs_bindgen_fcf75bd82a2068c9_base
+
+{-| __C declaration:__ @heif_context_read_from_memory_without_copy@
+
+    __defined at:__ @libheif\/heif_context.h 251:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_memory_without_copy ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.Void
+     -- ^ __C declaration:__ @mem@
+  -> HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @size@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_memory_without_copy =
+  \x0 ->
+    \mem1 ->
+      \size2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_fcf75bd82a2068c9 x0 mem1 size2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_reader@
+foreign import ccall unsafe "hs_bindgen_30a7fb98ea82638e" hs_bindgen_30a7fb98ea82638e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_read_from_reader@
+hs_bindgen_30a7fb98ea82638e ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+  -> BG.Ptr BG.Void
+  -> PtrConst.PtrConst Heif_reading_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_30a7fb98ea82638e =
+  BG.fromFFIType hs_bindgen_30a7fb98ea82638e_base
+
+{-| __C declaration:__ @heif_context_read_from_reader@
+
+    __defined at:__ @libheif\/heif_context.h 256:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_read_from_reader ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_reader
+     -- ^ __C declaration:__ @reader@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> PtrConst.PtrConst Heif_reading_options
+  -> IO Heif_error
+heif_context_read_from_reader =
+  \x0 ->
+    \reader1 ->
+      \userdata2 ->
+        \x3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_30a7fb98ea82638e x0 reader1 userdata2 x3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_number_of_top_level_images@
+foreign import ccall unsafe "hs_bindgen_d022237e551807f9" hs_bindgen_d022237e551807f9_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_number_of_top_level_images@
+hs_bindgen_d022237e551807f9 ::
+     BG.Ptr Heif_context
+  -> IO BG.CInt
+hs_bindgen_d022237e551807f9 =
+  BG.fromFFIType hs_bindgen_d022237e551807f9_base
+
+{-| __C declaration:__ @heif_context_get_number_of_top_level_images@
+
+    __defined at:__ @libheif\/heif_context.h 265:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_number_of_top_level_images ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_number_of_top_level_images =
+  hs_bindgen_d022237e551807f9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_is_top_level_image_ID@
+foreign import ccall unsafe "hs_bindgen_42c1e4344d442b11" hs_bindgen_42c1e4344d442b11_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_is_top_level_image_ID@
+hs_bindgen_42c1e4344d442b11 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> IO BG.CInt
+hs_bindgen_42c1e4344d442b11 =
+  BG.fromFFIType hs_bindgen_42c1e4344d442b11_base
+
+{-| __C declaration:__ @heif_context_is_top_level_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 268:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_is_top_level_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO BG.CInt
+heif_context_is_top_level_image_ID =
+  hs_bindgen_42c1e4344d442b11
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_list_of_top_level_image_IDs@
+foreign import ccall unsafe "hs_bindgen_563deefc7bdc5b71" hs_bindgen_563deefc7bdc5b71_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_list_of_top_level_image_IDs@
+hs_bindgen_563deefc7bdc5b71 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_563deefc7bdc5b71 =
+  BG.fromFFIType hs_bindgen_563deefc7bdc5b71_base
+
+{-| __C declaration:__ @heif_context_get_list_of_top_level_image_IDs@
+
+    __defined at:__ @libheif\/heif_context.h 273:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_list_of_top_level_image_IDs ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @ID_array@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_list_of_top_level_image_IDs =
+  hs_bindgen_563deefc7bdc5b71
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_ID@
+foreign import ccall unsafe "hs_bindgen_e211461a4b3d3f0b" hs_bindgen_e211461a4b3d3f0b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_ID@
+hs_bindgen_e211461a4b3d3f0b ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e211461a4b3d3f0b =
+  BG.fromFFIType hs_bindgen_e211461a4b3d3f0b_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_ID@
+
+    __defined at:__ @libheif\/heif_context.h 278:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_ID ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> IO Heif_error
+heif_context_get_primary_image_ID =
+  \ctx0 ->
+    \id1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_e211461a4b3d3f0b ctx0 id1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_handle@
+foreign import ccall unsafe "hs_bindgen_47dc3223f11aefec" hs_bindgen_47dc3223f11aefec_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_primary_image_handle@
+hs_bindgen_47dc3223f11aefec ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_47dc3223f11aefec =
+  BG.fromFFIType hs_bindgen_47dc3223f11aefec_base
+
+{-| __C declaration:__ @heif_context_get_primary_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 283:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_primary_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_primary_image_handle =
+  \ctx0 ->
+    \x1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_47dc3223f11aefec ctx0 x1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_image_handle@
+foreign import ccall unsafe "hs_bindgen_b49b56d6f03fcaf8" hs_bindgen_b49b56d6f03fcaf8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_image_handle@
+hs_bindgen_b49b56d6f03fcaf8 ::
+     BG.Ptr Heif_context
+  -> Heif_item_id
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b49b56d6f03fcaf8 =
+  BG.fromFFIType hs_bindgen_b49b56d6f03fcaf8_base
+
+{-| __C declaration:__ @heif_context_get_image_handle@
+
+    __defined at:__ @libheif\/heif_context.h 288:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_image_handle ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_item_id
+     -- ^ __C declaration:__ @id@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> IO Heif_error
+heif_context_get_image_handle =
+  \ctx0 ->
+    \id1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_b49b56d6f03fcaf8 ctx0 id1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_debug_dump_boxes_to_file@
+foreign import ccall unsafe "hs_bindgen_8d375594ebb1037b" hs_bindgen_8d375594ebb1037b_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_debug_dump_boxes_to_file@
+hs_bindgen_8d375594ebb1037b ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_8d375594ebb1037b =
+  BG.fromFFIType hs_bindgen_8d375594ebb1037b_base
+
+{-| __C declaration:__ @heif_context_debug_dump_boxes_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 296:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_debug_dump_boxes_to_file ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @fd@
+  -> IO ()
+heif_context_debug_dump_boxes_to_file =
+  hs_bindgen_8d375594ebb1037b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_write_mini_format@
+foreign import ccall unsafe "hs_bindgen_64075557c6a39094" hs_bindgen_64075557c6a39094_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_write_mini_format@
+hs_bindgen_64075557c6a39094 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_64075557c6a39094 =
+  BG.fromFFIType hs_bindgen_64075557c6a39094_base
+
+{-| __C declaration:__ @heif_context_set_write_mini_format@
+
+    __defined at:__ @libheif\/heif_context.h 309:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_write_mini_format ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO ()
+heif_context_set_write_mini_format =
+  hs_bindgen_64075557c6a39094
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write_to_file@
+foreign import ccall unsafe "hs_bindgen_4fcabf8d41da421f" hs_bindgen_4fcabf8d41da421f_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write_to_file@
+hs_bindgen_4fcabf8d41da421f ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4fcabf8d41da421f =
+  BG.fromFFIType hs_bindgen_4fcabf8d41da421f_base
+
+{-| __C declaration:__ @heif_context_write_to_file@
+
+    __defined at:__ @libheif\/heif_context.h 316:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write_to_file ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @filename@
+  -> IO Heif_error
+heif_context_write_to_file =
+  \x0 ->
+    \filename1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_4fcabf8d41da421f x0 filename1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write@
+foreign import ccall unsafe "hs_bindgen_dcde2d838b9789eb" hs_bindgen_dcde2d838b9789eb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_write@
+hs_bindgen_dcde2d838b9789eb ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+  -> BG.Ptr BG.Void
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_dcde2d838b9789eb =
+  BG.fromFFIType hs_bindgen_dcde2d838b9789eb_base
+
+{-| __C declaration:__ @heif_context_write@
+
+    __defined at:__ @libheif\/heif_context.h 335:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_write ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_writer
+     -- ^ __C declaration:__ @writer@
+  -> BG.Ptr BG.Void
+     -- ^ __C declaration:__ @userdata@
+  -> IO Heif_error
+heif_context_write =
+  \x0 ->
+    \writer1 ->
+      \userdata2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_dcde2d838b9789eb x0 writer1 userdata2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_8b4419bc4eb2363d" hs_bindgen_8b4419bc4eb2363d_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_encoder_for_format@
+hs_bindgen_8b4419bc4eb2363d ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_8b4419bc4eb2363d =
+  BG.fromFFIType hs_bindgen_8b4419bc4eb2363d_base
+
+{-| __C declaration:__ @heif_have_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 63:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_encoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_encoder_for_format =
+  hs_bindgen_8b4419bc4eb2363d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_20792e040c32e0e8" hs_bindgen_20792e040c32e0e8_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_encoder_descriptors@
+hs_bindgen_20792e040c32e0e8 ::
+     Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_20792e040c32e0e8 =
+  BG.fromFFIType hs_bindgen_20792e040c32e0e8_base
+
+{-| __C declaration:__ @heif_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 72:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_encoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_encoder_descriptors =
+  hs_bindgen_20792e040c32e0e8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_7378a87d06f64c7f" hs_bindgen_7378a87d06f64c7f_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_name@
+hs_bindgen_7378a87d06f64c7f ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_7378a87d06f64c7f =
+  BG.fromFFIType hs_bindgen_7378a87d06f64c7f_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 79:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_name =
+  hs_bindgen_7378a87d06f64c7f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_32132b83ae93dd0d" hs_bindgen_32132b83ae93dd0d_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_id_name@
+hs_bindgen_32132b83ae93dd0d ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_32132b83ae93dd0d =
+  BG.fromFFIType hs_bindgen_32132b83ae93dd0d_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 84:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_descriptor_get_id_name =
+  hs_bindgen_32132b83ae93dd0d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_compression_format@
+foreign import ccall unsafe "hs_bindgen_516b3c831a5935aa" hs_bindgen_516b3c831a5935aa_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_get_compression_format@
+hs_bindgen_516b3c831a5935aa ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+hs_bindgen_516b3c831a5935aa =
+  BG.fromFFIType hs_bindgen_516b3c831a5935aa_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_get_compression_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 88:1@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_get_compression_format ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO Heif_compression_format
+heif_encoder_descriptor_get_compression_format =
+  hs_bindgen_516b3c831a5935aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_387691abb58c5a8c" hs_bindgen_387691abb58c5a8c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossy_compression@
+hs_bindgen_387691abb58c5a8c ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_387691abb58c5a8c =
+  BG.fromFFIType hs_bindgen_387691abb58c5a8c_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 91:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossy_compression =
+  hs_bindgen_387691abb58c5a8c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_c3eff547363f97b7" hs_bindgen_c3eff547363f97b7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supports_lossless_compression@
+hs_bindgen_c3eff547363f97b7 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_c3eff547363f97b7 =
+  BG.fromFFIType hs_bindgen_c3eff547363f97b7_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supports_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 94:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supports_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supports_lossless_compression =
+  hs_bindgen_c3eff547363f97b7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder@
+foreign import ccall unsafe "hs_bindgen_4c48d2c2a159ab39" hs_bindgen_4c48d2c2a159ab39_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder@
+hs_bindgen_4c48d2c2a159ab39 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_4c48d2c2a159ab39 =
+  BG.fromFFIType hs_bindgen_4c48d2c2a159ab39_base
+
+{-| __C declaration:__ @heif_context_get_encoder@
+
+    __defined at:__ @libheif\/heif_encoding.h 99:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> PtrConst.PtrConst Heif_encoder_descriptor
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+     -- ^ __C declaration:__ @out_encoder@
+  -> IO Heif_error
+heif_context_get_encoder =
+  \context0 ->
+    \x1 ->
+      \out_encoder2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_4c48d2c2a159ab39 context0 x1 out_encoder2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_for_format@
+foreign import ccall unsafe "hs_bindgen_5bab8f03475ec97b" hs_bindgen_5bab8f03475ec97b_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_for_format@
+hs_bindgen_5bab8f03475ec97b ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5bab8f03475ec97b =
+  BG.fromFFIType hs_bindgen_5bab8f03475ec97b_base
+
+{-| __C declaration:__ @heif_context_get_encoder_for_format@
+
+    __defined at:__ @libheif\/heif_encoding.h 106:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_for_format ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @context@
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> BG.Ptr (BG.Ptr Heif_encoder)
+  -> IO Heif_error
+heif_context_get_encoder_for_format =
+  \context0 ->
+    \format1 ->
+      \x2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_5bab8f03475ec97b context0 format1 x2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_release@
+foreign import ccall unsafe "hs_bindgen_5be4df5257e0d63e" hs_bindgen_5be4df5257e0d63e_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_release@
+hs_bindgen_5be4df5257e0d63e ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+hs_bindgen_5be4df5257e0d63e =
+  BG.fromFFIType hs_bindgen_5be4df5257e0d63e_base
+
+{-| __C declaration:__ @heif_encoder_release@
+
+    __defined at:__ @libheif\/heif_encoding.h 114:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_release ::
+     BG.Ptr Heif_encoder
+  -> IO ()
+heif_encoder_release = hs_bindgen_5be4df5257e0d63e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_name@
+foreign import ccall unsafe "hs_bindgen_55e2efba5427c071" hs_bindgen_55e2efba5427c071_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_name@
+hs_bindgen_55e2efba5427c071 ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_55e2efba5427c071 =
+  BG.fromFFIType hs_bindgen_55e2efba5427c071_base
+
+{-| __C declaration:__ @heif_encoder_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 118:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_name ::
+     PtrConst.PtrConst Heif_encoder
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_get_name = hs_bindgen_55e2efba5427c071
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossy_quality@
+foreign import ccall unsafe "hs_bindgen_9700eae02c9f1b08" hs_bindgen_9700eae02c9f1b08_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossy_quality@
+hs_bindgen_9700eae02c9f1b08 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9700eae02c9f1b08 =
+  BG.fromFFIType hs_bindgen_9700eae02c9f1b08_base
+
+{-| __C declaration:__ @heif_encoder_set_lossy_quality@
+
+    __defined at:__ @libheif\/heif_encoding.h 134:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossy_quality ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @quality@
+  -> IO Heif_error
+heif_encoder_set_lossy_quality =
+  \x0 ->
+    \quality1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_9700eae02c9f1b08 x0 quality1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossless@
+foreign import ccall unsafe "hs_bindgen_0d4543b236bd057c" hs_bindgen_0d4543b236bd057c_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_lossless@
+hs_bindgen_0d4543b236bd057c ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_0d4543b236bd057c =
+  BG.fromFFIType hs_bindgen_0d4543b236bd057c_base
+
+{-| __C declaration:__ @heif_encoder_set_lossless@
+
+    __defined at:__ @libheif\/heif_encoding.h 137:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_lossless ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @enable@
+  -> IO Heif_error
+heif_encoder_set_lossless =
+  \x0 ->
+    \enable1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_0d4543b236bd057c x0 enable1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_logging_level@
+foreign import ccall unsafe "hs_bindgen_528ef0518bd8ed17" hs_bindgen_528ef0518bd8ed17_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_logging_level@
+hs_bindgen_528ef0518bd8ed17 ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_528ef0518bd8ed17 =
+  BG.fromFFIType hs_bindgen_528ef0518bd8ed17_base
+
+{-| __C declaration:__ @heif_encoder_set_logging_level@
+
+    __defined at:__ @libheif\/heif_encoding.h 141:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_logging_level ::
+     BG.Ptr Heif_encoder
+  -> BG.CInt
+     -- ^ __C declaration:__ @level@
+  -> IO Heif_error
+heif_encoder_set_logging_level =
+  \x0 ->
+    \level1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_528ef0518bd8ed17 x0 level1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_list_parameters@
+foreign import ccall unsafe "hs_bindgen_8ba729e891d005fb" hs_bindgen_8ba729e891d005fb_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_list_parameters@
+hs_bindgen_8ba729e891d005fb ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+hs_bindgen_8ba729e891d005fb =
+  BG.fromFFIType hs_bindgen_8ba729e891d005fb_base
+
+{-| __C declaration:__ @heif_encoder_list_parameters@
+
+    __defined at:__ @libheif\/heif_encoding.h 147:38@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_list_parameters ::
+     BG.Ptr Heif_encoder
+  -> IO (PtrConst.PtrConst (PtrConst.PtrConst Heif_encoder_parameter))
+heif_encoder_list_parameters =
+  hs_bindgen_8ba729e891d005fb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_name@
+foreign import ccall unsafe "hs_bindgen_0b37fad3bcbc1032" hs_bindgen_0b37fad3bcbc1032_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_name@
+hs_bindgen_0b37fad3bcbc1032 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_0b37fad3bcbc1032 =
+  BG.fromFFIType hs_bindgen_0b37fad3bcbc1032_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_name@
+
+    __defined at:__ @libheif\/heif_encoding.h 151:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_name ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_encoder_parameter_get_name =
+  hs_bindgen_0b37fad3bcbc1032
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_type@
+foreign import ccall unsafe "hs_bindgen_effc6448978f082b" hs_bindgen_effc6448978f082b_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_type@
+hs_bindgen_effc6448978f082b ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+hs_bindgen_effc6448978f082b =
+  BG.fromFFIType hs_bindgen_effc6448978f082b_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_type@
+
+    __defined at:__ @libheif\/heif_encoding.h 163:34@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_type ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> IO Heif_encoder_parameter_type
+heif_encoder_parameter_get_type =
+  hs_bindgen_effc6448978f082b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_range@
+foreign import ccall unsafe "hs_bindgen_9cc90071aaec91f3" hs_bindgen_9cc90071aaec91f3_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_range@
+hs_bindgen_9cc90071aaec91f3 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9cc90071aaec91f3 =
+  BG.fromFFIType hs_bindgen_9cc90071aaec91f3_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 167:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_range ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_range =
+  \x0 ->
+    \have_minimum_maximum1 ->
+      \minimum2 ->
+        \maximum3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_9cc90071aaec91f3 x0 have_minimum_maximum1 minimum2 maximum3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_values@
+foreign import ccall unsafe "hs_bindgen_050ff9ca987786fb" hs_bindgen_050ff9ca987786fb_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_integer_values@
+hs_bindgen_050ff9ca987786fb ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_050ff9ca987786fb =
+  BG.fromFFIType hs_bindgen_050ff9ca987786fb_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_integer_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 174:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_integer_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_integer_values =
+  \x0 ->
+    \have_minimum1 ->
+      \have_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            \num_valid_values5 ->
+              \out_integer_array6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_050ff9ca987786fb x0 have_minimum1 have_maximum2 minimum3 maximum4 num_valid_values5 out_integer_array6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_string_values@
+foreign import ccall unsafe "hs_bindgen_349b7bf99e396f16" hs_bindgen_349b7bf99e396f16_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_get_valid_string_values@
+hs_bindgen_349b7bf99e396f16 ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_349b7bf99e396f16 =
+  BG.fromFFIType hs_bindgen_349b7bf99e396f16_base
+
+{-| __C declaration:__ @heif_encoder_parameter_get_valid_string_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 181:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_get_valid_string_values ::
+     PtrConst.PtrConst Heif_encoder_parameter
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_get_valid_string_values =
+  \x0 ->
+    \out_stringarray1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_349b7bf99e396f16 x0 out_stringarray1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_d653763347d1d09b" hs_bindgen_d653763347d1d09b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_integer@
+hs_bindgen_d653763347d1d09b ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d653763347d1d09b =
+  BG.fromFFIType hs_bindgen_d653763347d1d09b_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 186:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_d653763347d1d09b x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_integer@
+foreign import ccall unsafe "hs_bindgen_2ad63a212716469e" hs_bindgen_2ad63a212716469e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_integer@
+hs_bindgen_2ad63a212716469e ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_2ad63a212716469e =
+  BG.fromFFIType hs_bindgen_2ad63a212716469e_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_integer@
+
+    __defined at:__ @libheif\/heif_encoding.h 191:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_integer ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_integer =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_2ad63a212716469e x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_range@
+foreign import ccall unsafe "hs_bindgen_d43bc70645423305" hs_bindgen_d43bc70645423305_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_range@
+hs_bindgen_d43bc70645423305 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d43bc70645423305 =
+  BG.fromFFIType hs_bindgen_d43bc70645423305_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_range@
+
+    __defined at:__ @libheif\/heif_encoding.h 197:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_range ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_range =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum_maximum2 ->
+        \minimum3 ->
+          \maximum4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_d43bc70645423305 x0 parameter_name1 have_minimum_maximum2 minimum3 maximum4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_d8ed4c246561cc69" hs_bindgen_d8ed4c246561cc69_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_boolean@
+hs_bindgen_d8ed4c246561cc69 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_d8ed4c246561cc69 =
+  BG.fromFFIType hs_bindgen_d8ed4c246561cc69_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 203:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_d8ed4c246561cc69 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_boolean@
+foreign import ccall unsafe "hs_bindgen_ca3fbaeda04e9582" hs_bindgen_ca3fbaeda04e9582_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_boolean@
+hs_bindgen_ca3fbaeda04e9582 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_ca3fbaeda04e9582 =
+  BG.fromFFIType hs_bindgen_ca3fbaeda04e9582_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_boolean@
+
+    __defined at:__ @libheif\/heif_encoding.h 208:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_boolean ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_get_parameter_boolean =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_ca3fbaeda04e9582 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_string@
+foreign import ccall unsafe "hs_bindgen_908cf213e79a8290" hs_bindgen_908cf213e79a8290_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter_string@
+hs_bindgen_908cf213e79a8290 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_908cf213e79a8290 =
+  BG.fromFFIType hs_bindgen_908cf213e79a8290_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 213:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_908cf213e79a8290 x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_string@
+foreign import ccall unsafe "hs_bindgen_7285de07553fd7c4" hs_bindgen_7285de07553fd7c4_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter_string@
+hs_bindgen_7285de07553fd7c4 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_7285de07553fd7c4 =
+  BG.fromFFIType hs_bindgen_7285de07553fd7c4_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter_string@
+
+    __defined at:__ @libheif\/heif_encoding.h 218:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter_string ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter_string =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_7285de07553fd7c4 x0 parameter_name1 value2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_string_valid_values@
+foreign import ccall unsafe "hs_bindgen_67b0a8f7e96abb96" hs_bindgen_67b0a8f7e96abb96_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_string_valid_values@
+hs_bindgen_67b0a8f7e96abb96 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_67b0a8f7e96abb96 =
+  BG.fromFFIType hs_bindgen_67b0a8f7e96abb96_base
+
+{-| __C declaration:__ @heif_encoder_parameter_string_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 224:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_string_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr (PtrConst.PtrConst (PtrConst.PtrConst BG.CChar))
+     -- ^ __C declaration:__ @out_stringarray@
+  -> IO Heif_error
+heif_encoder_parameter_string_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \out_stringarray2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_67b0a8f7e96abb96 x0 parameter_name1 out_stringarray2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_values@
+foreign import ccall unsafe "hs_bindgen_837fd04e76a07e3c" hs_bindgen_837fd04e76a07e3c_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_parameter_integer_valid_values@
+hs_bindgen_837fd04e76a07e3c ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr BG.CInt
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_837fd04e76a07e3c =
+  BG.fromFFIType hs_bindgen_837fd04e76a07e3c_base
+
+{-| __C declaration:__ @heif_encoder_parameter_integer_valid_values@
+
+    __defined at:__ @libheif\/heif_encoding.h 229:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_parameter_integer_valid_values ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @have_maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @minimum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @maximum@
+  -> BG.Ptr BG.CInt
+     -- ^ __C declaration:__ @num_valid_values@
+  -> BG.Ptr (PtrConst.PtrConst BG.CInt)
+     -- ^ __C declaration:__ @out_integer_array@
+  -> IO Heif_error
+heif_encoder_parameter_integer_valid_values =
+  \x0 ->
+    \parameter_name1 ->
+      \have_minimum2 ->
+        \have_maximum3 ->
+          \minimum4 ->
+            \maximum5 ->
+              \num_valid_values6 ->
+                \out_integer_array7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_837fd04e76a07e3c x0 parameter_name1 have_minimum2 have_maximum3 minimum4 maximum5 num_valid_values6 out_integer_array7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter@
+foreign import ccall unsafe "hs_bindgen_26a36653bf79dc5e" hs_bindgen_26a36653bf79dc5e_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_set_parameter@
+hs_bindgen_26a36653bf79dc5e ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_26a36653bf79dc5e =
+  BG.fromFFIType hs_bindgen_26a36653bf79dc5e_base
+
+{-| __C declaration:__ @heif_encoder_set_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 246:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_set_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @value@
+  -> IO Heif_error
+heif_encoder_set_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_26a36653bf79dc5e x0 parameter_name1 value2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter@
+foreign import ccall unsafe "hs_bindgen_badf4585dea9cce8" hs_bindgen_badf4585dea9cce8_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_get_parameter@
+hs_bindgen_badf4585dea9cce8 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr BG.CChar
+  -> BG.CInt
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_badf4585dea9cce8 =
+  BG.fromFFIType hs_bindgen_badf4585dea9cce8_base
+
+{-| __C declaration:__ @heif_encoder_get_parameter@
+
+    __defined at:__ @libheif\/heif_encoding.h 253:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_get_parameter ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> BG.Ptr BG.CChar
+     -- ^ __C declaration:__ @value_ptr@
+  -> BG.CInt
+     -- ^ __C declaration:__ @value_size@
+  -> IO Heif_error
+heif_encoder_get_parameter =
+  \x0 ->
+    \parameter_name1 ->
+      \value_ptr2 ->
+        \value_size3 ->
+          BG.allocaAndPeek (\res4 ->
+                              hs_bindgen_badf4585dea9cce8 x0 parameter_name1 value_ptr2 value_size3 res4)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_has_default@
+foreign import ccall unsafe "hs_bindgen_5f05e81fb1017506" hs_bindgen_5f05e81fb1017506_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_has_default@
+hs_bindgen_5f05e81fb1017506 ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+  -> IO BG.CInt
+hs_bindgen_5f05e81fb1017506 =
+  BG.fromFFIType hs_bindgen_5f05e81fb1017506_base
+
+{-| __C declaration:__ @heif_encoder_has_default@
+
+    __defined at:__ @libheif\/heif_encoding.h 259:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_has_default ::
+     BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @parameter_name@
+  -> IO BG.CInt
+heif_encoder_has_default =
+  hs_bindgen_5f05e81fb1017506
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_orientation_concat@
+foreign import ccall unsafe "hs_bindgen_5de65368b622937b" hs_bindgen_5de65368b622937b_base ::
+     BG.Word32
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_orientation_concat@
+hs_bindgen_5de65368b622937b ::
+     Heif_orientation
+  -> Heif_orientation
+  -> IO Heif_orientation
+hs_bindgen_5de65368b622937b =
+  BG.fromFFIType hs_bindgen_5de65368b622937b_base
+
+{-| __C declaration:__ @heif_orientation_concat@
+
+    __defined at:__ @libheif\/heif_encoding.h 278:18@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_orientation_concat ::
+     Heif_orientation
+     -- ^ __C declaration:__ @first@
+  -> Heif_orientation
+     -- ^ __C declaration:__ @second@
+  -> IO Heif_orientation
+heif_orientation_concat = hs_bindgen_5de65368b622937b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_a63382036a0c2ed6" hs_bindgen_a63382036a0c2ed6_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_alloc@
+hs_bindgen_a63382036a0c2ed6 :: IO (BG.Ptr Heif_encoding_options)
+hs_bindgen_a63382036a0c2ed6 =
+  BG.fromFFIType hs_bindgen_a63382036a0c2ed6_base
+
+{-| __C declaration:__ @heif_encoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_encoding.h 335:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_alloc :: IO (BG.Ptr Heif_encoding_options)
+heif_encoding_options_alloc =
+  hs_bindgen_a63382036a0c2ed6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_3a1ae325c063e780" hs_bindgen_3a1ae325c063e780_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_copy@
+hs_bindgen_3a1ae325c063e780 ::
+     BG.Ptr Heif_encoding_options
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> IO ()
+hs_bindgen_3a1ae325c063e780 =
+  BG.fromFFIType hs_bindgen_3a1ae325c063e780_base
+
+{-| __C declaration:__ @heif_encoding_options_copy@
+
+    __defined at:__ @libheif\/heif_encoding.h 338:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_copy ::
+     BG.Ptr Heif_encoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_encoding_options_copy =
+  hs_bindgen_3a1ae325c063e780
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_free@
+foreign import ccall unsafe "hs_bindgen_7e49924263fcce32" hs_bindgen_7e49924263fcce32_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoding_options_free@
+hs_bindgen_7e49924263fcce32 ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+hs_bindgen_7e49924263fcce32 =
+  BG.fromFFIType hs_bindgen_7e49924263fcce32_base
+
+{-| __C declaration:__ @heif_encoding_options_free@
+
+    __defined at:__ @libheif\/heif_encoding.h 341:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoding_options_free ::
+     BG.Ptr Heif_encoding_options
+  -> IO ()
+heif_encoding_options_free =
+  hs_bindgen_7e49924263fcce32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_image@
+foreign import ccall unsafe "hs_bindgen_6ac3b36ffb994fd2" hs_bindgen_6ac3b36ffb994fd2_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_image@
+hs_bindgen_6ac3b36ffb994fd2 ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_6ac3b36ffb994fd2 =
+  BG.fromFFIType hs_bindgen_6ac3b36ffb994fd2_base
+
+{-| __C declaration:__ @heif_context_encode_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 350:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_image ::
+     BG.Ptr Heif_context
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_image =
+  \x0 ->
+    \image1 ->
+      \encoder2 ->
+        \options3 ->
+          \out_image_handle4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_6ac3b36ffb994fd2 x0 image1 encoder2 options3 out_image_handle4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_overlay_image@
+foreign import ccall unsafe "hs_bindgen_1d9fc34edd017e95" hs_bindgen_1d9fc34edd017e95_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_overlay_image@
+hs_bindgen_1d9fc34edd017e95 ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word16
+  -> PtrConst.PtrConst Heif_item_id
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_1d9fc34edd017e95 =
+  BG.fromFFIType hs_bindgen_1d9fc34edd017e95_base
+
+{-| __C declaration:__ @heif_context_add_overlay_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 359:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_overlay_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @nImages@
+  -> PtrConst.PtrConst Heif_item_id
+     -- ^ __C declaration:__ @image_ids@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Int32
+     -- ^ __C declaration:__ @offsets@
+  -> PtrConst.PtrConst (IsA.Elem (CA.ConstantArray 4 HsBindgen.Runtime.LibC.Word16))
+     -- ^ __C declaration:__ @background_rgba@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_iovl_image_handle@
+  -> IO Heif_error
+heif_context_add_overlay_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \nImages3 ->
+          \image_ids4 ->
+            \offsets5 ->
+              \background_rgba6 ->
+                \out_iovl_image_handle7 ->
+                  BG.allocaAndPeek (\res8 ->
+                                      hs_bindgen_1d9fc34edd017e95 ctx0 image_width1 image_height2 nImages3 image_ids4 offsets5 background_rgba6 out_iovl_image_handle7 res8)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_primary_image@
+foreign import ccall unsafe "hs_bindgen_a78d763f0e72894b" hs_bindgen_a78d763f0e72894b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_primary_image@
+hs_bindgen_a78d763f0e72894b ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_a78d763f0e72894b =
+  BG.fromFFIType hs_bindgen_a78d763f0e72894b_base
+
+{-| __C declaration:__ @heif_context_set_primary_image@
+
+    __defined at:__ @libheif\/heif_encoding.h 369:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_primary_image ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> IO Heif_error
+heif_context_set_primary_image =
+  \x0 ->
+    \image_handle1 ->
+      BG.allocaAndPeek (\res2 ->
+                          hs_bindgen_a78d763f0e72894b x0 image_handle1 res2)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_major_brand@
+foreign import ccall unsafe "hs_bindgen_7cfa31db45c6d2e0" hs_bindgen_7cfa31db45c6d2e0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_major_brand@
+hs_bindgen_7cfa31db45c6d2e0 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_7cfa31db45c6d2e0 =
+  BG.fromFFIType hs_bindgen_7cfa31db45c6d2e0_base
+
+{-| __C declaration:__ @heif_context_set_major_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 376:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_major_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @major_brand@
+  -> IO ()
+heif_context_set_major_brand =
+  hs_bindgen_7cfa31db45c6d2e0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_compatible_brand@
+foreign import ccall unsafe "hs_bindgen_53369da73974a5c8" hs_bindgen_53369da73974a5c8_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_compatible_brand@
+hs_bindgen_53369da73974a5c8 ::
+     BG.Ptr Heif_context
+  -> Heif_brand2
+  -> IO ()
+hs_bindgen_53369da73974a5c8 =
+  BG.fromFFIType hs_bindgen_53369da73974a5c8_base
+
+{-| __C declaration:__ @heif_context_add_compatible_brand@
+
+    __defined at:__ @libheif\/heif_encoding.h 381:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_compatible_brand ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> Heif_brand2
+     -- ^ __C declaration:__ @compatible_brand@
+  -> IO ()
+heif_context_add_compatible_brand =
+  hs_bindgen_53369da73974a5c8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_unif@
+foreign import ccall unsafe "hs_bindgen_ee19be3747255a78" hs_bindgen_ee19be3747255a78_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_unif@
+hs_bindgen_ee19be3747255a78 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_ee19be3747255a78 =
+  BG.fromFFIType hs_bindgen_ee19be3747255a78_base
+
+{-| __C declaration:__ @heif_context_set_unif@
+
+    __defined at:__ @libheif\/heif_encoding.h 395:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_unif ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @flag@
+  -> IO ()
+heif_context_set_unif = hs_bindgen_ee19be3747255a78
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossy_compression@
+foreign import ccall unsafe "hs_bindgen_6aa908eebd2da1c7" hs_bindgen_6aa908eebd2da1c7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossy_compression@
+hs_bindgen_6aa908eebd2da1c7 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_6aa908eebd2da1c7 =
+  BG.fromFFIType hs_bindgen_6aa908eebd2da1c7_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossy_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 401:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossy_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossy_compression =
+  hs_bindgen_6aa908eebd2da1c7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossless_compression@
+foreign import ccall unsafe "hs_bindgen_ae780e3f1353c894" hs_bindgen_ae780e3f1353c894_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_encoder_descriptor_supportes_lossless_compression@
+hs_bindgen_ae780e3f1353c894 ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+hs_bindgen_ae780e3f1353c894 =
+  BG.fromFFIType hs_bindgen_ae780e3f1353c894_base
+
+{-| __C declaration:__ @heif_encoder_descriptor_supportes_lossless_compression@
+
+    __defined at:__ @libheif\/heif_encoding.h 405:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_encoder_descriptor_supportes_lossless_compression ::
+     PtrConst.PtrConst Heif_encoder_descriptor
+  -> IO BG.CInt
+heif_encoder_descriptor_supportes_lossless_compression =
+  hs_bindgen_ae780e3f1353c894
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_2c76e06503a77574" hs_bindgen_2c76e06503a77574_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_encoder_descriptors@
+hs_bindgen_2c76e06503a77574 ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_2c76e06503a77574 =
+  BG.fromFFIType hs_bindgen_2c76e06503a77574_base
+
+{-| __C declaration:__ @heif_context_get_encoder_descriptors@
+
+    __defined at:__ @libheif\/heif_encoding.h 415:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_encoder_descriptors ::
+     BG.Ptr Heif_context
+  -> Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @name_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_encoder_descriptor)
+     -- ^ __C declaration:__ @out_encoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_context_get_encoder_descriptors =
+  hs_bindgen_2c76e06503a77574
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_87200925476eeec7" hs_bindgen_87200925476eeec7_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_set_max_decoding_threads@
+hs_bindgen_87200925476eeec7 ::
+     BG.Ptr Heif_context
+  -> BG.CInt
+  -> IO ()
+hs_bindgen_87200925476eeec7 =
+  BG.fromFFIType hs_bindgen_87200925476eeec7_base
+
+{-| __C declaration:__ @heif_context_set_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 40:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_set_max_decoding_threads ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.CInt
+     -- ^ __C declaration:__ @max_threads@
+  -> IO ()
+heif_context_set_max_decoding_threads =
+  hs_bindgen_87200925476eeec7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_max_decoding_threads@
+foreign import ccall unsafe "hs_bindgen_0c7154c9354fd286" hs_bindgen_0c7154c9354fd286_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_get_max_decoding_threads@
+hs_bindgen_0c7154c9354fd286 ::
+     PtrConst.PtrConst Heif_context
+  -> IO BG.CInt
+hs_bindgen_0c7154c9354fd286 =
+  BG.fromFFIType hs_bindgen_0c7154c9354fd286_base
+
+{-| __C declaration:__ @heif_context_get_max_decoding_threads@
+
+    __defined at:__ @libheif\/heif_decoding.h 47:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_get_max_decoding_threads ::
+     PtrConst.PtrConst Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> IO BG.CInt
+heif_context_get_max_decoding_threads =
+  hs_bindgen_0c7154c9354fd286
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_decoder_for_format@
+foreign import ccall unsafe "hs_bindgen_42f0650f86196b25" hs_bindgen_42f0650f86196b25_base ::
+     BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_have_decoder_for_format@
+hs_bindgen_42f0650f86196b25 ::
+     Heif_compression_format
+  -> IO BG.CInt
+hs_bindgen_42f0650f86196b25 =
+  BG.fromFFIType hs_bindgen_42f0650f86196b25_base
+
+{-| __C declaration:__ @heif_have_decoder_for_format@
+
+    __defined at:__ @libheif\/heif_decoding.h 53:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_have_decoder_for_format ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format@
+  -> IO BG.CInt
+heif_have_decoder_for_format =
+  hs_bindgen_42f0650f86196b25
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_alloc@
+foreign import ccall unsafe "hs_bindgen_9c5874c5219718b8" hs_bindgen_9c5874c5219718b8_base ::
+     IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_alloc@
+hs_bindgen_9c5874c5219718b8 :: IO (BG.Ptr Heif_decoding_options)
+hs_bindgen_9c5874c5219718b8 =
+  BG.fromFFIType hs_bindgen_9c5874c5219718b8_base
+
+{-| __C declaration:__ @heif_decoding_options_alloc@
+
+    __defined at:__ @libheif\/heif_decoding.h 165:24@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_alloc :: IO (BG.Ptr Heif_decoding_options)
+heif_decoding_options_alloc =
+  hs_bindgen_9c5874c5219718b8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_copy@
+foreign import ccall unsafe "hs_bindgen_3b86db3999f11506" hs_bindgen_3b86db3999f11506_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_copy@
+hs_bindgen_3b86db3999f11506 ::
+     BG.Ptr Heif_decoding_options
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> IO ()
+hs_bindgen_3b86db3999f11506 =
+  BG.fromFFIType hs_bindgen_3b86db3999f11506_base
+
+{-| __C declaration:__ @heif_decoding_options_copy@
+
+    __defined at:__ @libheif\/heif_decoding.h 168:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_copy ::
+     BG.Ptr Heif_decoding_options
+     -- ^ __C declaration:__ @dst@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @src@
+  -> IO ()
+heif_decoding_options_copy =
+  hs_bindgen_3b86db3999f11506
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_free@
+foreign import ccall unsafe "hs_bindgen_cf88ca791cd899fe" hs_bindgen_cf88ca791cd899fe_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoding_options_free@
+hs_bindgen_cf88ca791cd899fe ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+hs_bindgen_cf88ca791cd899fe =
+  BG.fromFFIType hs_bindgen_cf88ca791cd899fe_base
+
+{-| __C declaration:__ @heif_decoding_options_free@
+
+    __defined at:__ @libheif\/heif_decoding.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoding_options_free ::
+     BG.Ptr Heif_decoding_options
+  -> IO ()
+heif_decoding_options_free =
+  hs_bindgen_cf88ca791cd899fe
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_decoder_descriptors@
+foreign import ccall unsafe "hs_bindgen_ab1f907a34ddc140" hs_bindgen_ab1f907a34ddc140_base ::
+     BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Int32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_get_decoder_descriptors@
+hs_bindgen_ab1f907a34ddc140 ::
+     Heif_compression_format
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+  -> BG.CInt
+  -> IO BG.CInt
+hs_bindgen_ab1f907a34ddc140 =
+  BG.fromFFIType hs_bindgen_ab1f907a34ddc140_base
+
+{-| __C declaration:__ @heif_get_decoder_descriptors@
+
+    __defined at:__ @libheif\/heif_decoding.h 183:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_get_decoder_descriptors ::
+     Heif_compression_format
+     -- ^ __C declaration:__ @format_filter@
+  -> BG.Ptr (PtrConst.PtrConst Heif_decoder_descriptor)
+     -- ^ __C declaration:__ @out_decoders@
+  -> BG.CInt
+     -- ^ __C declaration:__ @count@
+  -> IO BG.CInt
+heif_get_decoder_descriptors =
+  hs_bindgen_ab1f907a34ddc140
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_name@
+foreign import ccall unsafe "hs_bindgen_b5afa8de744aaab5" hs_bindgen_b5afa8de744aaab5_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_name@
+hs_bindgen_b5afa8de744aaab5 ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_b5afa8de744aaab5 =
+  BG.fromFFIType hs_bindgen_b5afa8de744aaab5_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 189:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_name =
+  hs_bindgen_b5afa8de744aaab5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_id_name@
+foreign import ccall unsafe "hs_bindgen_7203e9b04a7a74dd" hs_bindgen_7203e9b04a7a74dd_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decoder_descriptor_get_id_name@
+hs_bindgen_7203e9b04a7a74dd ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_7203e9b04a7a74dd =
+  BG.fromFFIType hs_bindgen_7203e9b04a7a74dd_base
+
+{-| __C declaration:__ @heif_decoder_descriptor_get_id_name@
+
+    __defined at:__ @libheif\/heif_decoding.h 195:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decoder_descriptor_get_id_name ::
+     PtrConst.PtrConst Heif_decoder_descriptor
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_decoder_descriptor_get_id_name =
+  hs_bindgen_7203e9b04a7a74dd
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decode_image@
+foreign import ccall unsafe "hs_bindgen_9c566de5c30f008a" hs_bindgen_9c566de5c30f008a_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_decode_image@
+hs_bindgen_9c566de5c30f008a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_9c566de5c30f008a =
+  BG.fromFFIType hs_bindgen_9c566de5c30f008a_base
+
+{-| __C declaration:__ @heif_decode_image@
+
+    __defined at:__ @libheif\/heif_decoding.h 209:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_decode_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> IO Heif_error
+heif_decode_image =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_9c566de5c30f008a in_handle0 out_img1 colorspace2 chroma3 options4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release@
+foreign import ccall unsafe "hs_bindgen_28bf4adaa29e960b" hs_bindgen_28bf4adaa29e960b_base ::
+     BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_release@
+hs_bindgen_28bf4adaa29e960b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+hs_bindgen_28bf4adaa29e960b =
+  BG.fromFFIType hs_bindgen_28bf4adaa29e960b_base
+
+{-| __C declaration:__ @heif_image_handle_release@
+
+    __defined at:__ @libheif\/heif_image_handle.h 47:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_release ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO ()
+heif_image_handle_release =
+  hs_bindgen_28bf4adaa29e960b
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_primary_image@
+foreign import ccall unsafe "hs_bindgen_9cd66a4acc781749" hs_bindgen_9cd66a4acc781749_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_primary_image@
+hs_bindgen_9cd66a4acc781749 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_9cd66a4acc781749 =
+  BG.fromFFIType hs_bindgen_9cd66a4acc781749_base
+
+{-| __C declaration:__ @heif_image_handle_is_primary_image@
+
+    __defined at:__ @libheif\/heif_image_handle.h 51:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_primary_image ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_is_primary_image =
+  hs_bindgen_9cd66a4acc781749
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_item_id@
+foreign import ccall unsafe "hs_bindgen_883fc3dc3fc5532a" hs_bindgen_883fc3dc3fc5532a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_item_id@
+hs_bindgen_883fc3dc3fc5532a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_item_id
+hs_bindgen_883fc3dc3fc5532a =
+  BG.fromFFIType hs_bindgen_883fc3dc3fc5532a_base
+
+{-| __C declaration:__ @heif_image_handle_get_item_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 54:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_item_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_item_id
+heif_image_handle_get_item_id =
+  hs_bindgen_883fc3dc3fc5532a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_width@
+foreign import ccall unsafe "hs_bindgen_0bcd25e50e8763ba" hs_bindgen_0bcd25e50e8763ba_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_width@
+hs_bindgen_0bcd25e50e8763ba ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_0bcd25e50e8763ba =
+  BG.fromFFIType hs_bindgen_0bcd25e50e8763ba_base
+
+{-| __C declaration:__ @heif_image_handle_get_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 61:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_width =
+  hs_bindgen_0bcd25e50e8763ba
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_height@
+foreign import ccall unsafe "hs_bindgen_bd94a464a89cccfb" hs_bindgen_bd94a464a89cccfb_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_height@
+hs_bindgen_bd94a464a89cccfb ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_bd94a464a89cccfb =
+  BG.fromFFIType hs_bindgen_bd94a464a89cccfb_base
+
+{-| __C declaration:__ @heif_image_handle_get_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 68:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_height =
+  hs_bindgen_bd94a464a89cccfb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_alpha_channel@
+foreign import ccall unsafe "hs_bindgen_019a58dabf17e62f" hs_bindgen_019a58dabf17e62f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_alpha_channel@
+hs_bindgen_019a58dabf17e62f ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_019a58dabf17e62f =
+  BG.fromFFIType hs_bindgen_019a58dabf17e62f_base
+
+{-| __C declaration:__ @heif_image_handle_has_alpha_channel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 71:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_alpha_channel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_alpha_channel =
+  hs_bindgen_019a58dabf17e62f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_premultiplied_alpha@
+foreign import ccall unsafe "hs_bindgen_07e4281a42d682d8" hs_bindgen_07e4281a42d682d8_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_is_premultiplied_alpha@
+hs_bindgen_07e4281a42d682d8 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_07e4281a42d682d8 =
+  BG.fromFFIType hs_bindgen_07e4281a42d682d8_base
+
+{-| __C declaration:__ @heif_image_handle_is_premultiplied_alpha@
+
+    __defined at:__ @libheif\/heif_image_handle.h 74:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_is_premultiplied_alpha ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_is_premultiplied_alpha =
+  hs_bindgen_07e4281a42d682d8
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_luma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_bd8920bbdfc607cb" hs_bindgen_bd8920bbdfc607cb_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_luma_bits_per_pixel@
+hs_bindgen_bd8920bbdfc607cb ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_bd8920bbdfc607cb =
+  BG.fromFFIType hs_bindgen_bd8920bbdfc607cb_base
+
+{-| __C declaration:__ @heif_image_handle_get_luma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 79:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_luma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_luma_bits_per_pixel =
+  hs_bindgen_bd8920bbdfc607cb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_chroma_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_4a9b5e4f4022f165" hs_bindgen_4a9b5e4f4022f165_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_chroma_bits_per_pixel@
+hs_bindgen_4a9b5e4f4022f165 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_4a9b5e4f4022f165 =
+  BG.fromFFIType hs_bindgen_4a9b5e4f4022f165_base
+
+{-| __C declaration:__ @heif_image_handle_get_chroma_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_image_handle.h 84:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_chroma_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_get_chroma_bits_per_pixel =
+  hs_bindgen_4a9b5e4f4022f165
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_preferred_decoding_colorspace@
+foreign import ccall unsafe "hs_bindgen_5866c7e268ce84a7" hs_bindgen_5866c7e268ce84a7_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_preferred_decoding_colorspace@
+hs_bindgen_5866c7e268ce84a7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr Heif_colorspace
+  -> BG.Ptr Heif_chroma
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_5866c7e268ce84a7 =
+  BG.fromFFIType hs_bindgen_5866c7e268ce84a7_base
+
+{-| __C declaration:__ @heif_image_handle_get_preferred_decoding_colorspace@
+
+    __defined at:__ @libheif\/heif_image_handle.h 102:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_preferred_decoding_colorspace ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @image_handle@
+  -> BG.Ptr Heif_colorspace
+     -- ^ __C declaration:__ @out_colorspace@
+  -> BG.Ptr Heif_chroma
+     -- ^ __C declaration:__ @out_chroma@
+  -> IO Heif_error
+heif_image_handle_get_preferred_decoding_colorspace =
+  \image_handle0 ->
+    \out_colorspace1 ->
+      \out_chroma2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_5866c7e268ce84a7 image_handle0 out_colorspace1 out_chroma2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_width@
+foreign import ccall unsafe "hs_bindgen_4ac86f0a6dddfea5" hs_bindgen_4ac86f0a6dddfea5_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_width@
+hs_bindgen_4ac86f0a6dddfea5 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_4ac86f0a6dddfea5 =
+  BG.fromFFIType hs_bindgen_4ac86f0a6dddfea5_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_width@
+
+    __defined at:__ @libheif\/heif_image_handle.h 110:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_width ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_width =
+  hs_bindgen_4ac86f0a6dddfea5
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_height@
+foreign import ccall unsafe "hs_bindgen_d6a6f34b63a7c18c" hs_bindgen_d6a6f34b63a7c18c_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_ispe_height@
+hs_bindgen_d6a6f34b63a7c18c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_d6a6f34b63a7c18c =
+  BG.fromFFIType hs_bindgen_d6a6f34b63a7c18c_base
+
+{-| __C declaration:__ @heif_image_handle_get_ispe_height@
+
+    __defined at:__ @libheif\/heif_image_handle.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_ispe_height ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO BG.CInt
+heif_image_handle_get_ispe_height =
+  hs_bindgen_d6a6f34b63a7c18c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_pixel_aspect_ratio@
+foreign import ccall unsafe "hs_bindgen_5b65c4e9e89d0618" hs_bindgen_5b65c4e9e89d0618_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_pixel_aspect_ratio@
+hs_bindgen_5b65c4e9e89d0618 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_5b65c4e9e89d0618 =
+  BG.fromFFIType hs_bindgen_5b65c4e9e89d0618_base
+
+{-| __C declaration:__ @heif_image_handle_get_pixel_aspect_ratio@
+
+    __defined at:__ @libheif\/heif_image_handle.h 117:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_pixel_aspect_ratio ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_h@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @aspect_v@
+  -> IO BG.CInt
+heif_image_handle_get_pixel_aspect_ratio =
+  hs_bindgen_5b65c4e9e89d0618
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_context@
+foreign import ccall unsafe "hs_bindgen_416f140cd405607c" hs_bindgen_416f140cd405607c_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_context@
+hs_bindgen_416f140cd405607c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (BG.Ptr Heif_context)
+hs_bindgen_416f140cd405607c =
+  BG.fromFFIType hs_bindgen_416f140cd405607c_base
+
+{-| __C declaration:__ @heif_image_handle_get_context@
+
+    __defined at:__ @libheif\/heif_image_handle.h 129:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_context ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (BG.Ptr Heif_context)
+heif_image_handle_get_context =
+  hs_bindgen_416f140cd405607c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_9d6713702978e3f4" hs_bindgen_9d6713702978e3f4_base ::
+     BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_content_id@
+hs_bindgen_9d6713702978e3f4 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_9d6713702978e3f4 =
+  BG.fromFFIType hs_bindgen_9d6713702978e3f4_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 132:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_content_id =
+  hs_bindgen_9d6713702978e3f4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_content_id@
+foreign import ccall unsafe "hs_bindgen_f107d82f17708377" hs_bindgen_f107d82f17708377_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_content_id@
+hs_bindgen_f107d82f17708377 ::
+     BG.Ptr Heif_image_handle
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_f107d82f17708377 =
+  BG.fromFFIType hs_bindgen_f107d82f17708377_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 135:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_content_id ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_content_id =
+  hs_bindgen_f107d82f17708377
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_cmpd_components@
+foreign import ccall unsafe "hs_bindgen_d241b0dabaa4529a" hs_bindgen_d241b0dabaa4529a_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_cmpd_components@
+hs_bindgen_d241b0dabaa4529a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_d241b0dabaa4529a =
+  BG.fromFFIType hs_bindgen_d241b0dabaa4529a_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_cmpd_components@
+
+    __defined at:__ @libheif\/heif_image_handle.h 142:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_cmpd_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_cmpd_components =
+  hs_bindgen_d241b0dabaa4529a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type@
+foreign import ccall unsafe "hs_bindgen_f849f5a5579d0d53" hs_bindgen_f849f5a5579d0d53_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type@
+hs_bindgen_f849f5a5579d0d53 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_f849f5a5579d0d53 =
+  BG.fromFFIType hs_bindgen_f849f5a5579d0d53_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type@
+
+    __defined at:__ @libheif\/heif_image_handle.h 147:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_cmpd_component_type =
+  hs_bindgen_f849f5a5579d0d53
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type_uri@
+foreign import ccall unsafe "hs_bindgen_f0f8fe1e51403813" hs_bindgen_f0f8fe1e51403813_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_cmpd_component_type_uri@
+hs_bindgen_f0f8fe1e51403813 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_f0f8fe1e51403813 =
+  BG.fromFFIType hs_bindgen_f0f8fe1e51403813_base
+
+{-| __C declaration:__ @heif_image_handle_get_cmpd_component_type_uri@
+
+    __defined at:__ @libheif\/heif_image_handle.h 153:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_cmpd_component_type_uri ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_cmpd_component_type_uri =
+  hs_bindgen_f0f8fe1e51403813
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_gimi_component_content_ids@
+foreign import ccall unsafe "hs_bindgen_8f5d4dfd76b35269" hs_bindgen_8f5d4dfd76b35269_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_has_gimi_component_content_ids@
+hs_bindgen_8f5d4dfd76b35269 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+hs_bindgen_8f5d4dfd76b35269 =
+  BG.fromFFIType hs_bindgen_8f5d4dfd76b35269_base
+
+{-| __C declaration:__ @heif_image_handle_has_gimi_component_content_ids@
+
+    __defined at:__ @libheif\/heif_image_handle.h 160:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_has_gimi_component_content_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO BG.CInt
+heif_image_handle_has_gimi_component_content_ids =
+  hs_bindgen_8f5d4dfd76b35269
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_4c964b2acbe2715a" hs_bindgen_4c964b2acbe2715a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_gimi_component_content_id@
+hs_bindgen_4c964b2acbe2715a ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO (PtrConst.PtrConst BG.CChar)
+hs_bindgen_4c964b2acbe2715a =
+  BG.fromFFIType hs_bindgen_4c964b2acbe2715a_base
+
+{-| __C declaration:__ @heif_image_handle_get_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 166:13@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_gimi_component_content_id ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> IO (PtrConst.PtrConst BG.CChar)
+heif_image_handle_get_gimi_component_content_id =
+  hs_bindgen_4c964b2acbe2715a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_b545cf8f497992ae" hs_bindgen_b545cf8f497992ae_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_gimi_component_content_id@
+hs_bindgen_b545cf8f497992ae ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> IO ()
+hs_bindgen_b545cf8f497992ae =
+  BG.fromFFIType hs_bindgen_b545cf8f497992ae_base
+
+{-| __C declaration:__ @heif_image_handle_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_image_handle.h 172:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_gimi_component_content_id ::
+     BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_idx@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO ()
+heif_image_handle_set_gimi_component_content_id =
+  hs_bindgen_b545cf8f497992ae
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_image_tiling@
+foreign import ccall unsafe "hs_bindgen_44591d28e788d50c" hs_bindgen_44591d28e788d50c_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_image_tiling@
+hs_bindgen_44591d28e788d50c ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> BG.Ptr Heif_image_tiling
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_44591d28e788d50c =
+  BG.fromFFIType hs_bindgen_44591d28e788d50c_base
+
+{-| __C declaration:__ @heif_image_handle_get_image_tiling@
+
+    __defined at:__ @libheif\/heif_tiling.h 67:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_image_tiling ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> BG.Ptr Heif_image_tiling
+     -- ^ __C declaration:__ @out_tiling@
+  -> IO Heif_error
+heif_image_handle_get_image_tiling =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \out_tiling2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_44591d28e788d50c handle0 process_image_transformations1 out_tiling2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_grid_image_tile_id@
+foreign import ccall unsafe "hs_bindgen_aaf84ee2e27e5f15" hs_bindgen_aaf84ee2e27e5f15_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_grid_image_tile_id@
+hs_bindgen_aaf84ee2e27e5f15 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_item_id
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_aaf84ee2e27e5f15 =
+  BG.fromFFIType hs_bindgen_aaf84ee2e27e5f15_base
+
+{-| __C declaration:__ @heif_image_handle_get_grid_image_tile_id@
+
+    __defined at:__ @libheif\/heif_tiling.h 74:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_grid_image_tile_id ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> BG.CInt
+     -- ^ __C declaration:__ @process_image_transformations@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> BG.Ptr Heif_item_id
+     -- ^ __C declaration:__ @out_tile_item_id@
+  -> IO Heif_error
+heif_image_handle_get_grid_image_tile_id =
+  \handle0 ->
+    \process_image_transformations1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \out_tile_item_id4 ->
+            BG.allocaAndPeek (\res5 ->
+                                hs_bindgen_aaf84ee2e27e5f15 handle0 process_image_transformations1 tile_x2 tile_y3 out_tile_item_id4 res5)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_decode_image_tile@
+foreign import ccall unsafe "hs_bindgen_71d50457a2e7f14b" hs_bindgen_71d50457a2e7f14b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_decode_image_tile@
+hs_bindgen_71d50457a2e7f14b ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> Heif_colorspace
+  -> Heif_chroma
+  -> PtrConst.PtrConst Heif_decoding_options
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_71d50457a2e7f14b =
+  BG.fromFFIType hs_bindgen_71d50457a2e7f14b_base
+
+{-| __C declaration:__ @heif_image_handle_decode_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 86:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_decode_image_tile ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @in_handle@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @out_img@
+  -> Heif_colorspace
+     -- ^ __C declaration:__ @colorspace@
+  -> Heif_chroma
+     -- ^ __C declaration:__ @chroma@
+  -> PtrConst.PtrConst Heif_decoding_options
+     -- ^ __C declaration:__ @options@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> IO Heif_error
+heif_image_handle_decode_image_tile =
+  \in_handle0 ->
+    \out_img1 ->
+      \colorspace2 ->
+        \chroma3 ->
+          \options4 ->
+            \tile_x5 ->
+              \tile_y6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_71d50457a2e7f14b in_handle0 out_img1 colorspace2 chroma3 options4 tile_x5 tile_y6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_grid@
+foreign import ccall unsafe "hs_bindgen_b6f1896d3842bb1b" hs_bindgen_b6f1896d3842bb1b_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word16
+  -> BG.Word16
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_encode_grid@
+hs_bindgen_b6f1896d3842bb1b ::
+     BG.Ptr Heif_context
+  -> BG.Ptr (BG.Ptr Heif_image)
+  -> HsBindgen.Runtime.LibC.Word16
+  -> HsBindgen.Runtime.LibC.Word16
+  -> BG.Ptr Heif_encoder
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_b6f1896d3842bb1b =
+  BG.fromFFIType hs_bindgen_b6f1896d3842bb1b_base
+
+{-| __C declaration:__ @heif_context_encode_grid@
+
+    __defined at:__ @libheif\/heif_tiling.h 109:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_encode_grid ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr (BG.Ptr Heif_image)
+     -- ^ __C declaration:__ @tiles@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @rows@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @columns@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @input_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_image_handle@
+  -> IO Heif_error
+heif_context_encode_grid =
+  \ctx0 ->
+    \tiles1 ->
+      \rows2 ->
+        \columns3 ->
+          \encoder4 ->
+            \input_options5 ->
+              \out_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_b6f1896d3842bb1b ctx0 tiles1 rows2 columns3 encoder4 input_options5 out_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_grid_image@
+foreign import ccall unsafe "hs_bindgen_c0099c7d4964643d" hs_bindgen_c0099c7d4964643d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_grid_image@
+hs_bindgen_c0099c7d4964643d ::
+     BG.Ptr Heif_context
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_encoding_options
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_c0099c7d4964643d =
+  BG.fromFFIType hs_bindgen_c0099c7d4964643d_base
+
+{-| __C declaration:__ @heif_context_add_grid_image@
+
+    __defined at:__ @libheif\/heif_tiling.h 118:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_grid_image ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_width@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @image_height@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_columns@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_rows@
+  -> PtrConst.PtrConst Heif_encoding_options
+     -- ^ __C declaration:__ @encoding_options@
+  -> BG.Ptr (BG.Ptr Heif_image_handle)
+     -- ^ __C declaration:__ @out_grid_image_handle@
+  -> IO Heif_error
+heif_context_add_grid_image =
+  \ctx0 ->
+    \image_width1 ->
+      \image_height2 ->
+        \tile_columns3 ->
+          \tile_rows4 ->
+            \encoding_options5 ->
+              \out_grid_image_handle6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_c0099c7d4964643d ctx0 image_width1 image_height2 tile_columns3 tile_rows4 encoding_options5 out_grid_image_handle6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_image_tile@
+foreign import ccall unsafe "hs_bindgen_188355cccd5fdf14" hs_bindgen_188355cccd5fdf14_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_context_add_image_tile@
+hs_bindgen_188355cccd5fdf14 ::
+     BG.Ptr Heif_context
+  -> BG.Ptr Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst Heif_image
+  -> BG.Ptr Heif_encoder
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_188355cccd5fdf14 =
+  BG.fromFFIType hs_bindgen_188355cccd5fdf14_base
+
+{-| __C declaration:__ @heif_context_add_image_tile@
+
+    __defined at:__ @libheif\/heif_tiling.h 127:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_context_add_image_tile ::
+     BG.Ptr Heif_context
+     -- ^ __C declaration:__ @ctx@
+  -> BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @tiled_image@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_x@
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @tile_y@
+  -> PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.Ptr Heif_encoder
+     -- ^ __C declaration:__ @encoder@
+  -> IO Heif_error
+heif_context_add_image_tile =
+  \ctx0 ->
+    \tiled_image1 ->
+      \tile_x2 ->
+        \tile_y3 ->
+          \image4 ->
+            \encoder5 ->
+              BG.allocaAndPeek (\res6 ->
+                                  hs_bindgen_188355cccd5fdf14 ctx0 tiled_image1 tile_x2 tile_y3 image4 encoder5 res6)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_number_of_used_components@
+foreign import ccall unsafe "hs_bindgen_92d950ffdc2de847" hs_bindgen_92d950ffdc2de847_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_number_of_used_components@
+hs_bindgen_92d950ffdc2de847 ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_92d950ffdc2de847 =
+  BG.fromFFIType hs_bindgen_92d950ffdc2de847_base
+
+{-| __C declaration:__ @heif_image_get_number_of_used_components@
+
+    __defined at:__ @libheif\/heif_components.h 96:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_number_of_used_components ::
+     PtrConst.PtrConst Heif_image
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_number_of_used_components =
+  hs_bindgen_92d950ffdc2de847
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_50b42d71ed1d2033" hs_bindgen_50b42d71ed1d2033_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_used_component_ids@
+hs_bindgen_50b42d71ed1d2033 ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_50b42d71ed1d2033 =
+  BG.fromFFIType hs_bindgen_50b42d71ed1d2033_base
+
+{-| __C declaration:__ @heif_image_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 101:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_get_used_component_ids =
+  hs_bindgen_50b42d71ed1d2033
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_channel@
+foreign import ccall unsafe "hs_bindgen_d7d8117bfd051b7c" hs_bindgen_d7d8117bfd051b7c_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_channel@
+hs_bindgen_d7d8117bfd051b7c ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_channel
+hs_bindgen_d7d8117bfd051b7c =
+  BG.fromFFIType hs_bindgen_d7d8117bfd051b7c_base
+
+{-| __C declaration:__ @heif_image_get_component_channel@
+
+    __defined at:__ @libheif\/heif_components.h 104:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_channel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_channel
+heif_image_get_component_channel =
+  hs_bindgen_d7d8117bfd051b7c
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_width@
+foreign import ccall unsafe "hs_bindgen_d27f543b4e39211d" hs_bindgen_d27f543b4e39211d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_width@
+hs_bindgen_d27f543b4e39211d ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_d27f543b4e39211d =
+  BG.fromFFIType hs_bindgen_d27f543b4e39211d_base
+
+{-| __C declaration:__ @heif_image_get_component_width@
+
+    __defined at:__ @libheif\/heif_components.h 107:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_width ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_width =
+  hs_bindgen_d27f543b4e39211d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_height@
+foreign import ccall unsafe "hs_bindgen_a5924fcf635470b3" hs_bindgen_a5924fcf635470b3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_height@
+hs_bindgen_a5924fcf635470b3 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_a5924fcf635470b3 =
+  BG.fromFFIType hs_bindgen_a5924fcf635470b3_base
+
+{-| __C declaration:__ @heif_image_get_component_height@
+
+    __defined at:__ @libheif\/heif_components.h 110:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_height ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_get_component_height =
+  hs_bindgen_a5924fcf635470b3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_212a3558eb9bbb38" hs_bindgen_212a3558eb9bbb38_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_bits_per_pixel@
+hs_bindgen_212a3558eb9bbb38 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_212a3558eb9bbb38 =
+  BG.fromFFIType hs_bindgen_212a3558eb9bbb38_base
+
+{-| __C declaration:__ @heif_image_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 113:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_get_component_bits_per_pixel =
+  hs_bindgen_212a3558eb9bbb38
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_type@
+foreign import ccall unsafe "hs_bindgen_2a65608da4a96b45" hs_bindgen_2a65608da4a96b45_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_type@
+hs_bindgen_2a65608da4a96b45 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_2a65608da4a96b45 =
+  BG.fromFFIType hs_bindgen_2a65608da4a96b45_base
+
+{-| __C declaration:__ @heif_image_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 116:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_type ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_get_component_type =
+  hs_bindgen_2a65608da4a96b45
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_5d0c49abeb7489aa" hs_bindgen_5d0c49abeb7489aa_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_datatype@
+hs_bindgen_5d0c49abeb7489aa ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_5d0c49abeb7489aa =
+  BG.fromFFIType hs_bindgen_5d0c49abeb7489aa_base
+
+{-| __C declaration:__ @heif_image_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 121:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_datatype ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_get_component_datatype =
+  hs_bindgen_5d0c49abeb7489aa
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_components@
+foreign import ccall unsafe "hs_bindgen_3e577779e550a986" hs_bindgen_3e577779e550a986_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_number_of_components@
+hs_bindgen_3e577779e550a986 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+hs_bindgen_3e577779e550a986 =
+  BG.fromFFIType hs_bindgen_3e577779e550a986_base
+
+{-| __C declaration:__ @heif_image_handle_get_number_of_components@
+
+    __defined at:__ @libheif\/heif_components.h 136:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_number_of_components ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO HsBindgen.Runtime.LibC.Word32
+heif_image_handle_get_number_of_components =
+  hs_bindgen_3e577779e550a986
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_used_component_ids@
+foreign import ccall unsafe "hs_bindgen_3de5a3a45cf894db" hs_bindgen_3de5a3a45cf894db_base ::
+     BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_used_component_ids@
+hs_bindgen_3de5a3a45cf894db ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> IO ()
+hs_bindgen_3de5a3a45cf894db =
+  BG.fromFFIType hs_bindgen_3de5a3a45cf894db_base
+
+{-| __C declaration:__ @heif_image_handle_get_used_component_ids@
+
+    __defined at:__ @libheif\/heif_components.h 142:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_used_component_ids ::
+     PtrConst.PtrConst Heif_image_handle
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_ids@
+  -> IO ()
+heif_image_handle_get_used_component_ids =
+  hs_bindgen_3de5a3a45cf894db
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_type@
+foreign import ccall unsafe "hs_bindgen_a672d180928a4092" hs_bindgen_a672d180928a4092_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word16
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_type@
+hs_bindgen_a672d180928a4092 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO HsBindgen.Runtime.LibC.Word16
+hs_bindgen_a672d180928a4092 =
+  BG.fromFFIType hs_bindgen_a672d180928a4092_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_type@
+
+    __defined at:__ @libheif\/heif_components.h 145:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_type ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO HsBindgen.Runtime.LibC.Word16
+heif_image_handle_get_component_type =
+  hs_bindgen_a672d180928a4092
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_bits_per_pixel@
+foreign import ccall unsafe "hs_bindgen_d6755ff0da5d47f0" hs_bindgen_d6755ff0da5d47f0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Int32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_bits_per_pixel@
+hs_bindgen_d6755ff0da5d47f0 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO BG.CInt
+hs_bindgen_d6755ff0da5d47f0 =
+  BG.fromFFIType hs_bindgen_d6755ff0da5d47f0_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_bits_per_pixel@
+
+    __defined at:__ @libheif\/heif_components.h 148:5@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_bits_per_pixel ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO BG.CInt
+heif_image_handle_get_component_bits_per_pixel =
+  hs_bindgen_d6755ff0da5d47f0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_datatype@
+foreign import ccall unsafe "hs_bindgen_4b42fd1e2f6c1b06" hs_bindgen_4b42fd1e2f6c1b06_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_component_datatype@
+hs_bindgen_4b42fd1e2f6c1b06 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+  -> IO Heif_component_datatype
+hs_bindgen_4b42fd1e2f6c1b06 =
+  BG.fromFFIType hs_bindgen_4b42fd1e2f6c1b06_base
+
+{-| __C declaration:__ @heif_image_handle_get_component_datatype@
+
+    __defined at:__ @libheif\/heif_components.h 151:25@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_component_datatype ::
+     PtrConst.PtrConst Heif_image_handle
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> IO Heif_component_datatype
+heif_image_handle_get_component_datatype =
+  hs_bindgen_4b42fd1e2f6c1b06
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_component@
+foreign import ccall unsafe "hs_bindgen_97edbd3d5283c85d" hs_bindgen_97edbd3d5283c85d_base ::
+     BG.Ptr BG.Void
+  -> BG.Int32
+  -> BG.Int32
+  -> BG.Word16
+  -> BG.Word32
+  -> BG.Int32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_add_component@
+hs_bindgen_97edbd3d5283c85d ::
+     BG.Ptr Heif_image
+  -> BG.CInt
+  -> BG.CInt
+  -> HsBindgen.Runtime.LibC.Word16
+  -> Heif_component_datatype
+  -> BG.CInt
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_97edbd3d5283c85d =
+  BG.fromFFIType hs_bindgen_97edbd3d5283c85d_base
+
+{-| __C declaration:__ @heif_image_add_component@
+
+    __defined at:__ @libheif\/heif_components.h 157:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_add_component ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> BG.CInt
+     -- ^ __C declaration:__ @width@
+  -> BG.CInt
+     -- ^ __C declaration:__ @height@
+  -> HsBindgen.Runtime.LibC.Word16
+     -- ^ __C declaration:__ @component_type@
+  -> Heif_component_datatype
+     -- ^ __C declaration:__ @datatype@
+  -> BG.CInt
+     -- ^ __C declaration:__ @bit_depth@
+  -> BG.Ptr HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @out_component_id@
+  -> IO Heif_error
+heif_image_add_component =
+  \image0 ->
+    \width1 ->
+      \height2 ->
+        \component_type3 ->
+          \datatype4 ->
+            \bit_depth5 ->
+              \out_component_id6 ->
+                BG.allocaAndPeek (\res7 ->
+                                    hs_bindgen_97edbd3d5283c85d image0 width1 height2 component_type3 datatype4 bit_depth5 out_component_id6 res7)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_readonly@
+foreign import ccall unsafe "hs_bindgen_41c5204933fd6b05" hs_bindgen_41c5204933fd6b05_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_readonly@
+hs_bindgen_41c5204933fd6b05 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_41c5204933fd6b05 =
+  BG.fromFFIType hs_bindgen_41c5204933fd6b05_base
+
+{-| __C declaration:__ @heif_image_get_component_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 168:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component_readonly =
+  hs_bindgen_41c5204933fd6b05
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component@
+foreign import ccall unsafe "hs_bindgen_c588ded2a4e43ed3" hs_bindgen_c588ded2a4e43ed3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component@
+hs_bindgen_c588ded2a4e43ed3 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+hs_bindgen_c588ded2a4e43ed3 =
+  BG.fromFFIType hs_bindgen_c588ded2a4e43ed3_base
+
+{-| __C declaration:__ @heif_image_get_component@
+
+    __defined at:__ @libheif\/heif_components.h 171:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_stride@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word8)
+heif_image_get_component =
+  hs_bindgen_c588ded2a4e43ed3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16_readonly@
+foreign import ccall unsafe "hs_bindgen_a0c133d2f6cf6ecb" hs_bindgen_a0c133d2f6cf6ecb_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16_readonly@
+hs_bindgen_a0c133d2f6cf6ecb ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_a0c133d2f6cf6ecb =
+  BG.fromFFIType hs_bindgen_a0c133d2f6cf6ecb_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 180:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16_readonly =
+  hs_bindgen_a0c133d2f6cf6ecb
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16@
+foreign import ccall unsafe "hs_bindgen_df23dc13cfbceb66" hs_bindgen_df23dc13cfbceb66_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint16@
+hs_bindgen_df23dc13cfbceb66 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+hs_bindgen_df23dc13cfbceb66 =
+  BG.fromFFIType hs_bindgen_df23dc13cfbceb66_base
+
+{-| __C declaration:__ @heif_image_get_component_uint16@
+
+    __defined at:__ @libheif\/heif_components.h 183:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word16)
+heif_image_get_component_uint16 =
+  hs_bindgen_df23dc13cfbceb66
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32_readonly@
+foreign import ccall unsafe "hs_bindgen_04f19447334809a3" hs_bindgen_04f19447334809a3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32_readonly@
+hs_bindgen_04f19447334809a3 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_04f19447334809a3 =
+  BG.fromFFIType hs_bindgen_04f19447334809a3_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 186:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32_readonly =
+  hs_bindgen_04f19447334809a3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32@
+foreign import ccall unsafe "hs_bindgen_685261e63a2699dc" hs_bindgen_685261e63a2699dc_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint32@
+hs_bindgen_685261e63a2699dc ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+hs_bindgen_685261e63a2699dc =
+  BG.fromFFIType hs_bindgen_685261e63a2699dc_base
+
+{-| __C declaration:__ @heif_image_get_component_uint32@
+
+    __defined at:__ @libheif\/heif_components.h 189:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word32)
+heif_image_get_component_uint32 =
+  hs_bindgen_685261e63a2699dc
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64_readonly@
+foreign import ccall unsafe "hs_bindgen_d36a1f5767c400a9" hs_bindgen_d36a1f5767c400a9_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64_readonly@
+hs_bindgen_d36a1f5767c400a9 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_d36a1f5767c400a9 =
+  BG.fromFFIType hs_bindgen_d36a1f5767c400a9_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 192:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64_readonly =
+  hs_bindgen_d36a1f5767c400a9
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64@
+foreign import ccall unsafe "hs_bindgen_54efeef674e4787a" hs_bindgen_54efeef674e4787a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_uint64@
+hs_bindgen_54efeef674e4787a ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+hs_bindgen_54efeef674e4787a =
+  BG.fromFFIType hs_bindgen_54efeef674e4787a_base
+
+{-| __C declaration:__ @heif_image_get_component_uint64@
+
+    __defined at:__ @libheif\/heif_components.h 195:11@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_uint64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Word64)
+heif_image_get_component_uint64 =
+  hs_bindgen_54efeef674e4787a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8_readonly@
+foreign import ccall unsafe "hs_bindgen_6d8f578fb4b8f599" hs_bindgen_6d8f578fb4b8f599_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8_readonly@
+hs_bindgen_6d8f578fb4b8f599 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_6d8f578fb4b8f599 =
+  BG.fromFFIType hs_bindgen_6d8f578fb4b8f599_base
+
+{-| __C declaration:__ @heif_image_get_component_int8_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 198:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8_readonly =
+  hs_bindgen_6d8f578fb4b8f599
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8@
+foreign import ccall unsafe "hs_bindgen_0571e5bd586c7239" hs_bindgen_0571e5bd586c7239_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int8@
+hs_bindgen_0571e5bd586c7239 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+hs_bindgen_0571e5bd586c7239 =
+  BG.fromFFIType hs_bindgen_0571e5bd586c7239_base
+
+{-| __C declaration:__ @heif_image_get_component_int8@
+
+    __defined at:__ @libheif\/heif_components.h 201:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int8 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int8)
+heif_image_get_component_int8 =
+  hs_bindgen_0571e5bd586c7239
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16_readonly@
+foreign import ccall unsafe "hs_bindgen_75635c2481355b9d" hs_bindgen_75635c2481355b9d_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16_readonly@
+hs_bindgen_75635c2481355b9d ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_75635c2481355b9d =
+  BG.fromFFIType hs_bindgen_75635c2481355b9d_base
+
+{-| __C declaration:__ @heif_image_get_component_int16_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 204:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16_readonly =
+  hs_bindgen_75635c2481355b9d
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16@
+foreign import ccall unsafe "hs_bindgen_c1e147a254585429" hs_bindgen_c1e147a254585429_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int16@
+hs_bindgen_c1e147a254585429 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+hs_bindgen_c1e147a254585429 =
+  BG.fromFFIType hs_bindgen_c1e147a254585429_base
+
+{-| __C declaration:__ @heif_image_get_component_int16@
+
+    __defined at:__ @libheif\/heif_components.h 207:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int16 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int16)
+heif_image_get_component_int16 =
+  hs_bindgen_c1e147a254585429
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32_readonly@
+foreign import ccall unsafe "hs_bindgen_c63eb568cec8ad9f" hs_bindgen_c63eb568cec8ad9f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32_readonly@
+hs_bindgen_c63eb568cec8ad9f ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_c63eb568cec8ad9f =
+  BG.fromFFIType hs_bindgen_c63eb568cec8ad9f_base
+
+{-| __C declaration:__ @heif_image_get_component_int32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 210:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32_readonly =
+  hs_bindgen_c63eb568cec8ad9f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32@
+foreign import ccall unsafe "hs_bindgen_dd8ada136a08e398" hs_bindgen_dd8ada136a08e398_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int32@
+hs_bindgen_dd8ada136a08e398 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+hs_bindgen_dd8ada136a08e398 =
+  BG.fromFFIType hs_bindgen_dd8ada136a08e398_base
+
+{-| __C declaration:__ @heif_image_get_component_int32@
+
+    __defined at:__ @libheif\/heif_components.h 213:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int32)
+heif_image_get_component_int32 =
+  hs_bindgen_dd8ada136a08e398
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64_readonly@
+foreign import ccall unsafe "hs_bindgen_3f4ad7985062f4b4" hs_bindgen_3f4ad7985062f4b4_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64_readonly@
+hs_bindgen_3f4ad7985062f4b4 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_3f4ad7985062f4b4 =
+  BG.fromFFIType hs_bindgen_3f4ad7985062f4b4_base
+
+{-| __C declaration:__ @heif_image_get_component_int64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 216:16@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64_readonly =
+  hs_bindgen_3f4ad7985062f4b4
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64@
+foreign import ccall unsafe "hs_bindgen_0ec9f92992fb98b3" hs_bindgen_0ec9f92992fb98b3_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_int64@
+hs_bindgen_0ec9f92992fb98b3 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+hs_bindgen_0ec9f92992fb98b3 =
+  BG.fromFFIType hs_bindgen_0ec9f92992fb98b3_base
+
+{-| __C declaration:__ @heif_image_get_component_int64@
+
+    __defined at:__ @libheif\/heif_components.h 219:10@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_int64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr HsBindgen.Runtime.LibC.Int64)
+heif_image_get_component_int64 =
+  hs_bindgen_0ec9f92992fb98b3
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32_readonly@
+foreign import ccall unsafe "hs_bindgen_23f11ff4a331711a" hs_bindgen_23f11ff4a331711a_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32_readonly@
+hs_bindgen_23f11ff4a331711a ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CFloat)
+hs_bindgen_23f11ff4a331711a =
+  BG.fromFFIType hs_bindgen_23f11ff4a331711a_base
+
+{-| __C declaration:__ @heif_image_get_component_float32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 222:14@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CFloat)
+heif_image_get_component_float32_readonly =
+  hs_bindgen_23f11ff4a331711a
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32@
+foreign import ccall unsafe "hs_bindgen_4b3f20877e3bea63" hs_bindgen_4b3f20877e3bea63_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float32@
+hs_bindgen_4b3f20877e3bea63 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CFloat)
+hs_bindgen_4b3f20877e3bea63 =
+  BG.fromFFIType hs_bindgen_4b3f20877e3bea63_base
+
+{-| __C declaration:__ @heif_image_get_component_float32@
+
+    __defined at:__ @libheif\/heif_components.h 225:8@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CFloat)
+heif_image_get_component_float32 =
+  hs_bindgen_4b3f20877e3bea63
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64_readonly@
+foreign import ccall unsafe "hs_bindgen_f12ea4b15194e665" hs_bindgen_f12ea4b15194e665_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64_readonly@
+hs_bindgen_f12ea4b15194e665 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst BG.CDouble)
+hs_bindgen_f12ea4b15194e665 =
+  BG.fromFFIType hs_bindgen_f12ea4b15194e665_base
+
+{-| __C declaration:__ @heif_image_get_component_float64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 228:15@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst BG.CDouble)
+heif_image_get_component_float64_readonly =
+  hs_bindgen_f12ea4b15194e665
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64@
+foreign import ccall unsafe "hs_bindgen_ca1c705a0dd0055e" hs_bindgen_ca1c705a0dd0055e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_float64@
+hs_bindgen_ca1c705a0dd0055e ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr BG.CDouble)
+hs_bindgen_ca1c705a0dd0055e =
+  BG.fromFFIType hs_bindgen_ca1c705a0dd0055e_base
+
+{-| __C declaration:__ @heif_image_get_component_float64@
+
+    __defined at:__ @libheif\/heif_components.h 231:9@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_float64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr BG.CDouble)
+heif_image_get_component_float64 =
+  hs_bindgen_ca1c705a0dd0055e
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32_readonly@
+foreign import ccall unsafe "hs_bindgen_a98fe7eded61994f" hs_bindgen_a98fe7eded61994f_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32_readonly@
+hs_bindgen_a98fe7eded61994f ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex32)
+hs_bindgen_a98fe7eded61994f =
+  BG.fromFFIType hs_bindgen_a98fe7eded61994f_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 234:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex32)
+heif_image_get_component_complex32_readonly =
+  hs_bindgen_a98fe7eded61994f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32@
+foreign import ccall unsafe "hs_bindgen_d6ca0ebc868780f0" hs_bindgen_d6ca0ebc868780f0_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex32@
+hs_bindgen_d6ca0ebc868780f0 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex32)
+hs_bindgen_d6ca0ebc868780f0 =
+  BG.fromFFIType hs_bindgen_d6ca0ebc868780f0_base
+
+{-| __C declaration:__ @heif_image_get_component_complex32@
+
+    __defined at:__ @libheif\/heif_components.h 237:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex32 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex32)
+heif_image_get_component_complex32 =
+  hs_bindgen_d6ca0ebc868780f0
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64_readonly@
+foreign import ccall unsafe "hs_bindgen_bad0deef2747e198" hs_bindgen_bad0deef2747e198_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64_readonly@
+hs_bindgen_bad0deef2747e198 ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (PtrConst.PtrConst Heif_complex64)
+hs_bindgen_bad0deef2747e198 =
+  BG.fromFFIType hs_bindgen_bad0deef2747e198_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64_readonly@
+
+    __defined at:__ @libheif\/heif_components.h 240:23@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64_readonly ::
+     PtrConst.PtrConst Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (PtrConst.PtrConst Heif_complex64)
+heif_image_get_component_complex64_readonly =
+  hs_bindgen_bad0deef2747e198
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64@
+foreign import ccall unsafe "hs_bindgen_d421676f6243ada6" hs_bindgen_d421676f6243ada6_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> IO (BG.Ptr BG.Void)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_component_complex64@
+hs_bindgen_d421676f6243ada6 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+  -> IO (BG.Ptr Heif_complex64)
+hs_bindgen_d421676f6243ada6 =
+  BG.fromFFIType hs_bindgen_d421676f6243ada6_base
+
+{-| __C declaration:__ @heif_image_get_component_complex64@
+
+    __defined at:__ @libheif\/heif_components.h 243:17@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_component_complex64 ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> BG.Ptr HsBindgen.Runtime.LibC.CSize
+     -- ^ __C declaration:__ @out_row_elements@
+  -> IO (BG.Ptr Heif_complex64)
+heif_image_get_component_complex64 =
+  hs_bindgen_d421676f6243ada6
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_gimi_component_content_id@
+foreign import ccall unsafe "hs_bindgen_e6f35aaf095c291e" hs_bindgen_e6f35aaf095c291e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> BG.Ptr BG.Void
+  -> BG.Ptr BG.Void
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_gimi_component_content_id@
+hs_bindgen_e6f35aaf095c291e ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+  -> PtrConst.PtrConst BG.CChar
+  -> BG.Ptr Heif_error
+  -> IO ()
+hs_bindgen_e6f35aaf095c291e =
+  BG.fromFFIType hs_bindgen_e6f35aaf095c291e_base
+
+{-| __C declaration:__ @heif_image_set_gimi_component_content_id@
+
+    __defined at:__ @libheif\/heif_components.h 255:12@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_gimi_component_content_id ::
+     BG.Ptr Heif_image
+  -> HsBindgen.Runtime.LibC.Word32
+     -- ^ __C declaration:__ @component_id@
+  -> PtrConst.PtrConst BG.CChar
+     -- ^ __C declaration:__ @content_id@
+  -> IO Heif_error
+heif_image_set_gimi_component_content_id =
+  \x0 ->
+    \component_id1 ->
+      \content_id2 ->
+        BG.allocaAndPeek (\res3 ->
+                            hs_bindgen_e6f35aaf095c291e x0 component_id1 content_id2 res3)
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_8c10fbaea42a19e7" hs_bindgen_8c10fbaea42a19e7_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_get_omaf_image_projection@
+hs_bindgen_8c10fbaea42a19e7 ::
+     PtrConst.PtrConst Heif_image_handle
+  -> IO Heif_omaf_image_projection
+hs_bindgen_8c10fbaea42a19e7 =
+  BG.fromFFIType hs_bindgen_8c10fbaea42a19e7_base
+
+{-| __C declaration:__ @heif_image_handle_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 83:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> IO Heif_omaf_image_projection
+heif_image_handle_get_omaf_image_projection =
+  hs_bindgen_8c10fbaea42a19e7
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_3affee0f8870d4ec" hs_bindgen_3affee0f8870d4ec_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_handle_set_omaf_image_projection@
+hs_bindgen_3affee0f8870d4ec ::
+     BG.Ptr Heif_image_handle
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_3affee0f8870d4ec =
+  BG.fromFFIType hs_bindgen_3affee0f8870d4ec_base
+
+{-| __C declaration:__ @heif_image_handle_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 86:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_handle_set_omaf_image_projection ::
+     BG.Ptr Heif_image_handle
+     -- ^ __C declaration:__ @handle@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_handle_set_omaf_image_projection =
+  hs_bindgen_3affee0f8870d4ec
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_a29dc52a1e29118f" hs_bindgen_a29dc52a1e29118f_base ::
+     BG.Ptr BG.Void
+  -> IO BG.Word32
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_get_omaf_image_projection@
+hs_bindgen_a29dc52a1e29118f ::
+     PtrConst.PtrConst Heif_image
+  -> IO Heif_omaf_image_projection
+hs_bindgen_a29dc52a1e29118f =
+  BG.fromFFIType hs_bindgen_a29dc52a1e29118f_base
+
+{-| __C declaration:__ @heif_image_get_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 94:28@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_get_omaf_image_projection ::
+     PtrConst.PtrConst Heif_image
+     -- ^ __C declaration:__ @image@
+  -> IO Heif_omaf_image_projection
+heif_image_get_omaf_image_projection =
+  hs_bindgen_a29dc52a1e29118f
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_omaf_image_projection@
+foreign import ccall unsafe "hs_bindgen_5ca071150556330e" hs_bindgen_5ca071150556330e_base ::
+     BG.Ptr BG.Void
+  -> BG.Word32
+  -> IO ()
+
+-- __unique:__ @org_libheifhs_Codec.HEIF.Bindings.Generated_Unsafe_heif_image_set_omaf_image_projection@
+hs_bindgen_5ca071150556330e ::
+     BG.Ptr Heif_image
+  -> Heif_omaf_image_projection
+  -> IO ()
+hs_bindgen_5ca071150556330e =
+  BG.fromFFIType hs_bindgen_5ca071150556330e_base
+
+{-| __C declaration:__ @heif_image_set_omaf_image_projection@
+
+    __defined at:__ @libheif\/heif_omaf.h 97:6@
+
+    __exported by:__ @libheif\/heif.h@
+-}
+heif_image_set_omaf_image_projection ::
+     BG.Ptr Heif_image
+     -- ^ __C declaration:__ @image@
+  -> Heif_omaf_image_projection
+     -- ^ __C declaration:__ @image_projection@
+  -> IO ()
+heif_image_set_omaf_image_projection =
+  hs_bindgen_5ca071150556330e
diff --git a/src/Codec/HEIF.hs b/src/Codec/HEIF.hs
new file mode 100644
--- /dev/null
+++ b/src/Codec/HEIF.hs
@@ -0,0 +1,127 @@
+module Codec.HEIF
+  ( -- * Re-exports
+    module Codec.HEIF.Error,
+
+    -- * Types
+    DecodeOptions (..),
+    Decoded (..),
+    EncodeOptions (..),
+    EncodeQuality (..),
+    Image (..),
+    Metadata (..),
+    MetadataBlock (..),
+    MetadataType (..),
+
+    -- * Decoding HEIF contents
+    decode,
+    decodeThrow,
+    decodeFromFile,
+    decodeFromFileThrow,
+
+    -- * Encoding HEIF contents
+    encode,
+    encodeThrow,
+    encodeToFile,
+    encodeToFileThrow,
+
+    -- * Misc.
+    heifVersion,
+    defaultDecodeOptions,
+    defaultEncodeOptions,
+  )
+where
+
+import Codec.HEIF.Bindings
+import Codec.HEIF.Error
+import Control.Exception (try)
+import Control.Monad
+import Data.ByteString qualified as BS
+import Data.ByteString.Lazy qualified as BSL
+
+data Decoded = Decoded
+  { decodedImage :: Image,
+    decodedMetadata :: Metadata
+  }
+
+defaultDecodeOptions :: DecodeOptions
+defaultDecodeOptions = DecodeOptions {..}
+  where
+    doIgnoreTransformations = False
+    doConvertHDRTo8Bit = True
+
+defaultEncodeOptions :: EncodeOptions
+defaultEncodeOptions = EncodeOptions {..}
+  where
+    eoQuality = Lossy 95
+
+-- Decoding --------------------------------
+
+-- | Same as 'decode' but throws 'HeifException'.
+decodeThrow :: DecodeOptions -> BS.ByteString -> IO Decoded
+decodeThrow decodeOptions imageHEIC =
+  withContext $ \context -> do
+    readByteStringIntoContext context imageHEIC
+    withPrimaryImage context $ \primaryImage -> do
+      decodedMetadata <- extractMetadata primaryImage
+      decodedImage <- withDecodedRGB decodeOptions primaryImage extractImageData
+      pure Decoded {..}
+
+-- | Same as 'decodeThrow' but loads from a file.
+decodeFromFileThrow :: DecodeOptions -> FilePath -> IO Decoded
+decodeFromFileThrow decodeOptions heicFile =
+  withContext $ \context -> do
+    readFileIntoContext context heicFile
+    withPrimaryImage context $ \primaryImage -> do
+      decodedMetadata <- extractMetadata primaryImage
+      decodedImage <- withDecodedRGB decodeOptions primaryImage extractImageData
+      pure Decoded {..}
+
+-- | Converts HEIC bytes into a 'Decoded'. The image is buffered in memory.
+-- It is not streaming because libheif buffers the image too,
+-- as HEIF is not a streaming format. Hence the strict ByteString parameter.
+decode :: DecodeOptions -> BS.ByteString -> IO (Either HeifException Decoded)
+decode decodeOptions = try . decodeThrow decodeOptions
+
+-- | Same as 'decode' but loads from a file
+decodeFromFile :: DecodeOptions -> FilePath -> IO (Either HeifException Decoded)
+decodeFromFile decodeOptions = try . decodeFromFileThrow decodeOptions
+
+-- Encoding --------------------------------
+
+-- | Same as 'encode' but throws 'HeifException'.
+encodeThrow :: EncodeOptions -> Decoded -> IO BSL.ByteString
+encodeThrow EncodeOptions {..} Decoded {..} = withContext $ \context -> do
+  withEncoder context $ \encoder -> do
+    encodeQuality eoQuality encoder
+    withRGBImage imageWidth imageHeight $ \writableImage -> do
+      withNewRGBPlane writableImage imageWidth imageHeight $ \plane -> do
+        fillPlaneFromByteString plane imagePixelsRGB
+      withEncodeImage context writableImage encoder $ \imageHandle -> do
+        forM_ metadataBlocks $ addMetadataBlock context imageHandle
+        encodeToByteString context
+  where
+    Image {..} = decodedImage
+    Metadata {..} = decodedMetadata
+
+-- | Same as 'encodeThrow' but writes to a file.
+encodeToFileThrow :: EncodeOptions -> FilePath -> Decoded -> IO ()
+encodeToFileThrow EncodeOptions {..} file Decoded {..} = withContext $ \context -> do
+  withEncoder context $ \encoder -> do
+    encodeQuality eoQuality encoder
+    withRGBImage imageWidth imageHeight $ \writableImage -> do
+      withNewRGBPlane writableImage imageWidth imageHeight $ \plane -> do
+        fillPlaneFromByteString plane imagePixelsRGB
+      withEncodeImage context writableImage encoder $ \imageHandle -> do
+        forM_ metadataBlocks $ addMetadataBlock context imageHandle
+        encodeWriteToFile context file
+  where
+    Image {..} = decodedImage
+    Metadata {..} = decodedMetadata
+
+-- | Converts a 'Decoded' value into HEIC bytes.
+encode :: EncodeOptions -> Decoded -> IO (Either HeifException BSL.ByteString)
+encode encodeOptions = try . encodeThrow encodeOptions
+
+-- | Same as 'encode' but writes to a file.
+encodeToFile :: EncodeOptions -> FilePath -> Decoded -> IO (Either HeifException ())
+encodeToFile encodeOptions filePath = try . encodeToFileThrow encodeOptions filePath
diff --git a/src/Codec/HEIF/Bindings.hs b/src/Codec/HEIF/Bindings.hs
new file mode 100644
--- /dev/null
+++ b/src/Codec/HEIF/Bindings.hs
@@ -0,0 +1,481 @@
+{-# LANGUAGE OverloadedRecordDot #-}
+{-# LANGUAGE OverloadedRecordUpdate #-}
+
+module Codec.HEIF.Bindings
+  ( Image (..),
+    Metadata (..),
+    MetadataBlock (..),
+    HeifException (..),
+    HeifError (..),
+    HeifSubError (..),
+    MetadataType (..),
+    Encoder (..),
+    EncodeQuality (..),
+    EncodeOptions (..),
+    DecodeOptions (..),
+    heifVersion,
+    withContext,
+    withPrimaryImage,
+    withDecodedRGB,
+    withRGBImage,
+    withEncoder,
+    withNewRGBPlane,
+    withEncodeImage,
+    encodeQuality,
+    readByteStringIntoContext,
+    readFileIntoContext,
+    extractImageData,
+    extractMetadata,
+    fillPlaneFromByteString,
+    addMetadataBlock,
+    encodeToByteString,
+    encodeWriteToFile,
+  )
+where
+
+import Codec.HEIF.Bindings.Generated qualified as HEIF
+import Codec.HEIF.Bindings.Generated.Safe qualified as HEIF
+import Codec.HEIF.Error
+import Codec.HEIF.Error.Internal
+import Control.Exception
+import Control.Monad (when)
+import Data.ByteString qualified as BS
+import Data.ByteString.Builder qualified as BSB
+import Data.ByteString.Internal qualified as BSI
+import Data.ByteString.Lazy qualified as BSL
+import Data.ByteString.Unsafe qualified as BSU (unsafeUseAsCStringLen)
+import Data.IORef
+import Data.Map qualified as M
+import Foreign qualified
+import Foreign.C.ConstPtr (ConstPtr (..))
+import Foreign.C.String qualified as Foreign (peekCString, withCString)
+import Foreign.Marshal.Utils (copyBytes)
+import Foreign.Ptr (plusPtr)
+import HsBindgen.Runtime.LibC qualified as Bindgen
+import HsBindgen.Runtime.Prelude qualified as Bindgen
+import HsBindgen.Runtime.PtrConst qualified as Bindgen
+import HsBindgen.Runtime.Support qualified as Bindgen
+import Numeric.Natural
+import Prelude
+
+data DecodeOptions
+  = DecodeOptions
+  { -- | Do not apply metadata transformations such as crop or rotate.
+    doIgnoreTransformations :: Bool,
+    -- | Downsamples high color depth images to 8 bits.
+    doConvertHDRTo8Bit :: Bool
+  }
+
+newtype EncodeOptions
+  = EncodeOptions
+  { eoQuality :: EncodeQuality
+  }
+
+constNullPtr :: Bindgen.PtrConst a
+constNullPtr = Bindgen.unsafeFromPtr Foreign.nullPtr
+
+-- | Returns the version of the underlying libheif C library.
+heifVersion :: IO String
+heifVersion = do
+  c_str <- HEIF.heif_get_version
+  Foreign.peekCString $ Bindgen.unsafeToPtr c_str
+
+ccharPtrToString :: Bindgen.PtrConst Bindgen.CChar -> IO (Maybe String)
+ccharPtrToString constPtr = do
+  let rawPtr = Bindgen.unsafeToPtr constPtr
+  if rawPtr == Foreign.nullPtr
+    then pure Nothing
+    else Just <$> Foreign.peekCString rawPtr
+
+errorToException :: HEIF.Heif_error -> IO HeifException
+errorToException HEIF.Heif_error {..} = do
+  message <- ccharPtrToString heif_error_message
+  pure $ LibraryException Library {..}
+  where
+    code = convertHeifErrorCode heif_error_code
+    subcode = convertHeifSubErrorCode heif_error_subcode
+
+throwIfError :: IO HEIF.Heif_error -> IO ()
+throwIfError action = do
+  err <- action
+  when (HEIF.unwrapHeif_error_code (HEIF.heif_error_code err) /= 0) $
+    errorToException err >>= throwIO
+
+newtype Context = Context
+  { _unContextHandle :: Foreign.Ptr HEIF.Heif_context
+  }
+
+newtype ImageHandle = ImageHandle (Bindgen.PtrConst HEIF.Heif_image_handle)
+
+newtype WritableImageHandle = WritableImageHandle (Foreign.Ptr HEIF.Heif_image_handle)
+
+newtype HeifImage = HeifImage (Bindgen.PtrConst HEIF.Heif_image)
+
+newtype WritableImage = WritableImage (Foreign.Ptr HEIF.Heif_image)
+
+newtype Encoder = Encoder (Foreign.Ptr HEIF.Heif_encoder)
+
+data Plane = Plane
+  { planePtr :: Foreign.Ptr Bindgen.Word8,
+    planeStride :: Int,
+    planeWidth :: Natural,
+    planeHeight :: Natural
+  }
+
+-- | Lossy values must be in range 0-100.
+data EncodeQuality = Lossless | Lossy Natural
+
+withContext :: (Context -> IO a) -> IO a
+withContext = bracket acquire release
+  where
+    acquire = Context <$> HEIF.heif_context_alloc
+    release (Context ptr) = HEIF.heif_context_free ptr
+
+withPrimaryImage :: Context -> (ImageHandle -> IO a) -> IO a
+withPrimaryImage (Context contextPtr) = bracket acquire release
+  where
+    acquire = Foreign.alloca $ \imageHandleOutPtr -> do
+      throwIfError $
+        HEIF.heif_context_get_primary_image_handle
+          contextPtr
+          imageHandleOutPtr
+      ImageHandle . Bindgen.unsafeFromPtr <$> Foreign.peek imageHandleOutPtr
+    release (ImageHandle ptr) = HEIF.heif_image_handle_release ptr
+
+withOptionsPointer :: (Foreign.Ptr HEIF.Heif_decoding_options -> IO a) -> IO a
+withOptionsPointer =
+  bracket acquire release
+  where
+    acquire = HEIF.heif_decoding_options_alloc
+    release = HEIF.heif_decoding_options_free
+
+withDecodedRGB :: DecodeOptions -> ImageHandle -> (HeifImage -> IO a) -> IO a
+withDecodedRGB DecodeOptions {..} (ImageHandle handlePtr) = bracket acquire release
+  where
+    acquire = Foreign.alloca $ \imageOutPtr -> do
+      withOptionsPointer $ \optionsPtr -> do
+        Foreign.poke
+          optionsPtr.heif_decoding_options_ignore_transformations
+          (if doIgnoreTransformations then 1 else 0)
+        Foreign.poke
+          optionsPtr.heif_decoding_options_convert_hdr_to_8bit
+          (if doConvertHDRTo8Bit then 1 else 0)
+        throwIfError $
+          HEIF.heif_decode_image
+            handlePtr
+            imageOutPtr
+            HEIF.Heif_colorspace_RGB
+            HEIF.Heif_chroma_interleaved_RGB
+            (Bindgen.unsafeFromPtr optionsPtr)
+      HeifImage . Bindgen.unsafeFromPtr <$> Foreign.peek imageOutPtr
+    release (HeifImage ptr) = HEIF.heif_image_release ptr
+
+withEncoder :: Context -> (Encoder -> IO a) -> IO a
+withEncoder (Context contextPtr) = bracket acquire release
+  where
+    acquire = Foreign.alloca $ \encoderOutPtr -> do
+      throwIfError $
+        HEIF.heif_context_get_encoder_for_format
+          contextPtr
+          HEIF.Heif_compression_HEVC
+          encoderOutPtr
+      Encoder <$> Foreign.peek encoderOutPtr
+    release (Encoder ptr) = HEIF.heif_encoder_release ptr
+
+encodeQuality :: EncodeQuality -> Encoder -> IO ()
+encodeQuality Lossless (Encoder encoderPtr) =
+  throwIfError $ HEIF.heif_encoder_set_lossless encoderPtr 1
+encodeQuality (Lossy quality) (Encoder encoderPtr) = do
+  throwIfError $ HEIF.heif_encoder_set_lossless encoderPtr 0
+  throwIfError $ HEIF.heif_encoder_set_lossy_quality encoderPtr (fromIntegral quality)
+
+readByteStringIntoContext :: Context -> BS.ByteString -> IO ()
+readByteStringIntoContext (Context contextPtr) bs =
+  BSU.unsafeUseAsCStringLen bs $ \(cStrPtr, len) -> do
+    let voidPtr = Bindgen.unsafeFromPtr (Foreign.castPtr cStrPtr)
+        cSize = fromIntegral len :: Bindgen.CSize
+    -- heif_context_read_from_memory_without_copy is not suitable because the underlying
+    -- bytestring could be garbage collected, in which case we'd be feeding invalid data
+    -- to the decoder...
+    throwIfError $ HEIF.heif_context_read_from_memory contextPtr voidPtr cSize constNullPtr
+
+readFileIntoContext :: Context -> FilePath -> IO ()
+readFileIntoContext (Context contextPtr) filePath =
+  Foreign.withCString filePath $ \filePathPtr ->
+    throwIfError $
+      HEIF.heif_context_read_from_file contextPtr (Bindgen.unsafeFromPtr filePathPtr) constNullPtr
+
+-- | Raw encoding of RGB data.
+data Image = Image
+  { imagePixelsRGB :: BS.ByteString,
+    imageWidth :: Natural,
+    imageHeight :: Natural
+  }
+  deriving (Show, Eq)
+
+extractImageData :: HeifImage -> IO Image
+extractImageData (HeifImage imgPtr) = Foreign.alloca $ \strideOutPtr -> do
+  rawPlanePtr <-
+    HEIF.heif_image_get_plane_readonly imgPtr HEIF.Heif_channel_interleaved strideOutPtr
+
+  -- TODO: we could check that
+  -- Bindgen.unsafeToPtr rawPlanePtr /= Foreign.nullPtr
+  strideCSize <- Foreign.peek strideOutPtr
+  heightCInt <- HEIF.heif_image_get_height imgPtr HEIF.Heif_channel_interleaved
+  widthCInt <- HEIF.heif_image_get_width imgPtr HEIF.Heif_channel_interleaved
+
+  let stride = fromIntegral strideCSize :: Int
+      imageHeight :: Natural = fromIntegral heightCInt
+      imageWidth :: Natural = fromIntegral widthCInt
+      rowBytes = imageWidth * 3 -- 3 bytes per pixel for RGB
+      totalExpectedBytes = rowBytes * imageHeight
+      sourcePtr = Foreign.castPtr (Bindgen.unsafeToPtr rawPlanePtr)
+
+  -- Allocate exactly the memory needed for the final contiguous ByteString
+  imagePixelsRGB <- BSI.create (fromIntegral totalExpectedBytes) $ \destinationPtr ->
+    mapM_
+      ( \row -> do
+          let currentSrcRow = sourcePtr `plusPtr` (row * stride)
+              currentDestRow = destinationPtr `plusPtr` (row * fromIntegral rowBytes)
+          copyBytes currentDestRow currentSrcRow $ fromIntegral rowBytes
+      )
+      [0 .. fromIntegral imageHeight - 1]
+
+  pure $ Image {..}
+
+data MetadataType = Exif | Mime | OtherMetadataType String
+  deriving (Show, Eq)
+
+-- | Metadata of type e.g. Exif, mime, or anything else. The block contains raw metadata bytes,
+-- it is the caller's responsability to validate and decode it. For Exif consider using
+-- [hsexif](https://hackage.haskell.org/package/hsexif).
+data MetadataBlock = MetadataBlock
+  { metadataBlockType :: MetadataType,
+    metadataBlockContentType :: String,
+    metadataBlockData :: BS.ByteString
+  }
+  deriving (Show, Eq)
+
+-- | Metadata found in the image.
+newtype Metadata = Metadata
+  { metadataBlocks :: M.Map Bindgen.Word32 MetadataBlock
+  }
+  deriving (Show, Eq)
+
+getMetadataBlocks :: ImageHandle -> IO (M.Map Bindgen.Word32 MetadataBlock)
+getMetadataBlocks imageHandle@(ImageHandle image) = do
+  numBlocks <- HEIF.heif_image_handle_get_number_of_metadata_blocks image constNullPtr
+  let count = fromIntegral numBlocks
+  if count <= 0
+    then pure mempty
+    else do
+      ids <- Foreign.allocaArray count $ \idsPtr -> do
+        _ActualCount <-
+          HEIF.heif_image_handle_get_list_of_metadata_block_IDs
+            image
+            constNullPtr
+            idsPtr
+            (fromIntegral count)
+        Foreign.peekArray count idsPtr
+      M.fromList <$> mapM (extractMetadataBlock imageHandle) ids
+
+-- | Exif metadata has a 4 0-byte prefix, strip it
+dropExifHeader :: String -> BS.ByteString -> BS.ByteString
+dropExifHeader "Exif" rawData
+  | BS.length rawData > 4 = BS.drop 4 rawData
+  | otherwise = rawData
+dropExifHeader "mime" rawData = rawData -- Direct raw XML, no offset to drop
+dropExifHeader _ rawData = rawData
+
+mkMetadataType :: String -> MetadataType
+mkMetadataType "Exif" = Exif
+mkMetadataType "mime" = Mime
+mkMetadataType other = OtherMetadataType other
+
+metadataTypeToString :: MetadataType -> String
+metadataTypeToString Exif = "Exif"
+metadataTypeToString Mime = "mime"
+metadataTypeToString (OtherMetadataType other) = other
+
+extractMetadataBlock :: ImageHandle -> HEIF.Heif_item_id -> IO (Bindgen.Word32, MetadataBlock)
+extractMetadataBlock (ImageHandle image) itemId = do
+  -- Fetch the block type string ("Exif", "mime", etc.)
+  metadataTypePtr <- HEIF.heif_image_handle_get_metadata_type image itemId
+  metadataTypeString <- Foreign.peekCString (Bindgen.unsafeToPtr metadataTypePtr)
+
+  metadataContentTypePtr <- HEIF.heif_image_handle_get_metadata_content_type image itemId
+  metadataContentTypeString <- Foreign.peekCString (Bindgen.unsafeToPtr metadataContentTypePtr)
+
+  -- Get exact size in bytes needed for memory allocation
+  dataSize <- HEIF.heif_image_handle_get_metadata_size image itemId
+
+  -- Allocate byte buffer, call C function, and pack into a ByteString
+  bsData <- Foreign.allocaBytes (fromIntegral dataSize) $ \outBuf -> do
+    throwIfError $ HEIF.heif_image_handle_get_metadata image itemId (Foreign.castPtr outBuf)
+    -- Check 'err' here if your bindings expose error validation
+    BS.packCStringLen (Foreign.castPtr outBuf, fromIntegral dataSize)
+
+  pure
+    ( HEIF.unwrapHeif_item_id itemId,
+      MetadataBlock
+        { metadataBlockType = mkMetadataType metadataTypeString,
+          metadataBlockData = dropExifHeader metadataTypeString bsData,
+          metadataBlockContentType = metadataContentTypeString
+        }
+    )
+
+-- | Returns (some) metadata information about the image.
+extractMetadata :: ImageHandle -> IO Metadata
+extractMetadata imageHandle = do
+  metadataBlocks <- getMetadataBlocks imageHandle
+  pure $ Metadata {..}
+
+withRGBImage :: Natural -> Natural -> (WritableImage -> IO a) -> IO a
+withRGBImage width height = bracket acquire release
+  where
+    acquire = Foreign.alloca $ \imageOutPtr -> do
+      throwIfError $
+        HEIF.heif_image_create
+          (fromIntegral width)
+          (fromIntegral height)
+          HEIF.Heif_colorspace_RGB
+          HEIF.Heif_chroma_interleaved_RGB
+          imageOutPtr
+      WritableImage <$> Foreign.peek imageOutPtr
+    release (WritableImage imageOutPtr) =
+      HEIF.heif_image_release (Bindgen.unsafeFromPtr imageOutPtr)
+
+withNewRGBPlane :: WritableImage -> Natural -> Natural -> (Plane -> IO a) -> IO a
+withNewRGBPlane (WritableImage imagePtr) planeWidth planeHeight = bracket acquire release
+  where
+    acquire = Foreign.alloca $ \stridePtr -> do
+      throwIfError $
+        HEIF.heif_image_add_plane
+          imagePtr
+          HEIF.Heif_channel_interleaved
+          (fromIntegral planeWidth)
+          (fromIntegral planeHeight)
+          24 -- 24 bits per pixel (RGB)
+      planePtr <- HEIF.heif_image_get_plane imagePtr HEIF.Heif_channel_interleaved stridePtr
+      planeStride <- fromIntegral <$> Foreign.peek stridePtr
+      pure Plane {..}
+    release _ = pure ()
+
+fillPlaneFromByteString :: Plane -> BS.ByteString -> IO ()
+fillPlaneFromByteString Plane {..} rgbData
+  | dataLength /= expectedSize =
+      throw $
+        DecodeSizeMismatch
+          SizeMismatch
+            { expectedBytes = fromIntegral expectedSize,
+              infoWidth = planeWidth,
+              infoHeight = planeHeight,
+              gotBytes = fromIntegral dataLength
+            }
+  | planeStride == rgbWidth = copyFast
+  | otherwise = copyStrided
+  where
+    w = fromIntegral planeWidth :: Int
+    h = fromIntegral planeHeight :: Int
+    rgbWidth = w * 3
+    expectedSize = rgbWidth * h
+    dataLength = BS.length rgbData
+    copyFast = BSU.unsafeUseAsCStringLen rgbData $ \(sourcePtr, len) ->
+      copyBytes planePtr (Foreign.castPtr sourcePtr) len
+    copyStrided = BSU.unsafeUseAsCStringLen rgbData $ \(srcPtr, _) -> do
+      mapM_ (copyRow srcPtr) [0 .. h - 1]
+    copyRow srcBytePtr y = do
+      let srcRow = srcBytePtr `plusPtr` (y * rgbWidth)
+          dstRow = planePtr `plusPtr` (y * planeStride)
+      copyBytes dstRow srcRow rgbWidth
+
+withEncodeImage ::
+  Context -> WritableImage -> Encoder -> (WritableImageHandle -> IO a) -> IO a
+withEncodeImage (Context contextPtr) (WritableImage image) (Encoder encoderPtr) =
+  bracket acquire release
+  where
+    acquire = Foreign.alloca $ \imageHandlePtr -> do
+      throwIfError $
+        HEIF.heif_context_encode_image
+          contextPtr
+          (Bindgen.unsafeFromPtr image)
+          encoderPtr
+          constNullPtr
+          imageHandlePtr
+      WritableImageHandle <$> Foreign.peek imageHandlePtr
+
+    release (WritableImageHandle imageHandlePtr) =
+      HEIF.heif_image_handle_release (Bindgen.unsafeFromPtr imageHandlePtr)
+
+-- | It's complementary to 'dropExifHeader'.
+addExifHeader :: MetadataType -> BS.ByteString -> BS.ByteString
+addExifHeader Exif = (BS.replicate 4 0x00 <>)
+addExifHeader _ = id
+
+addMetadataBlock :: Context -> WritableImageHandle -> MetadataBlock -> IO ()
+addMetadataBlock (Context contextPtr) (WritableImageHandle imageHandle) MetadataBlock {..} =
+  BSU.unsafeUseAsCStringLen (addExifHeader metadataBlockType metadataBlockData) $
+    \(dataPtr, len) -> do
+      Foreign.withCString (metadataTypeToString metadataBlockType) $ \metadataTypePtr ->
+        Foreign.withCString metadataBlockContentType $ \contentTypePtr ->
+          throwIfError $
+            HEIF.heif_context_add_generic_metadata
+              contextPtr
+              (Bindgen.unsafeFromPtr imageHandle)
+              (Bindgen.unsafeFromPtr $ Foreign.castPtr dataPtr)
+              (fromIntegral len)
+              (Bindgen.unsafeFromPtr metadataTypePtr)
+              (Bindgen.unsafeFromPtr contentTypePtr)
+
+type HsWriteCb =
+  Bindgen.Ptr HEIF.Heif_context ->
+  Bindgen.PtrConst Bindgen.Void ->
+  Bindgen.CSize ->
+  Bindgen.Ptr Bindgen.Void ->
+  IO Bindgen.CInt
+
+foreign import ccall "get_c_trampoline_ptr"
+  c_get_trampoline_ptr :: IO (Bindgen.Ptr ())
+
+foreign import ccall "wrapper"
+  mkHsWriteCb :: HsWriteCb -> IO (Bindgen.FunPtr HsWriteCb)
+
+encodeWriteToFile :: Context -> FilePath -> IO ()
+encodeWriteToFile (Context contextPtr) filePath =
+  Foreign.withCString filePath $ \filePathPtr -> do
+    throwIfError $
+      HEIF.heif_context_write_to_file
+        contextPtr
+        (Bindgen.unsafeFromPtr filePathPtr)
+
+encodeToByteString :: Context -> IO BSL.ByteString
+encodeToByteString (Context contextPtr) = do
+  bufferRef <- newIORef mempty
+  bracket (acquire bufferRef) release (action bufferRef)
+  where
+    acquire ref = mkHsWriteCb (writeCallback ref)
+    release = Foreign.freeHaskellFunPtr
+    action ref chunkWriteFunctionPtr = do
+      Foreign.alloca $ \writerPtr -> do
+        trampolinePtr <- c_get_trampoline_ptr
+        Foreign.poke writerPtr.heif_writer_writer_api_version (1 :: Bindgen.CInt)
+        Foreign.poke writerPtr.heif_writer_write (Foreign.castPtrToFunPtr trampolinePtr)
+
+        -- Trigger the encoding; this will invoke `cbPtr` multiple times
+        -- Critical: pass the Haskell FunPtr as the 'userdata' argument!
+        throwIfError $
+          HEIF.heif_context_write
+            contextPtr
+            writerPtr
+            (Foreign.castFunPtrToPtr chunkWriteFunctionPtr)
+
+      -- Extract and finalize the ByteString from the builder
+      finalBuilder <- readIORef ref
+      pure $ BSB.toLazyByteString finalBuilder
+
+    -- The Callback: appends raw C memory chunks to our IORef Builder
+    writeCallback :: IORef BSB.Builder -> HsWriteCb
+    writeCallback ref _ctx dataPtr size _userData = do
+      chunk <- BS.packCStringLen (Foreign.castPtr $ Bindgen.unsafeToPtr dataPtr, fromIntegral size)
+      modifyIORef' ref (\b -> b <> BSB.byteString chunk)
+      pure 0
diff --git a/src/Codec/HEIF/Error.hs b/src/Codec/HEIF/Error.hs
new file mode 100644
--- /dev/null
+++ b/src/Codec/HEIF/Error.hs
@@ -0,0 +1,139 @@
+module Codec.HEIF.Error
+  ( HeifException (..),
+    HeifError (..),
+    HeifSubError (..),
+    SizeMismatch (..),
+    Library (..),
+  )
+where
+
+import Control.Exception
+import Numeric.Natural
+
+-- | Size mismatch: expected 'expectedBytes' bytes, equal to 'infoWidth' * 'infoHeight'
+-- but got 'gotBytes' bytes.
+data SizeMismatch
+  = SizeMismatch
+  { expectedBytes :: Natural,
+    infoWidth :: Natural,
+    infoHeight :: Natural,
+    gotBytes :: Natural
+  }
+  deriving (Show)
+
+-- | Corresponds to the errors returned by libheif.
+data Library
+  = Library
+  { code :: HeifError,
+    subcode :: HeifSubError,
+    message :: Maybe String
+  }
+  deriving (Show)
+
+data HeifException
+  = LibraryException Library
+  | DecodeSizeMismatch SizeMismatch
+  deriving (Show)
+
+instance Exception HeifException
+
+-- | Maps to C enum heif_error_code from libheif/heif_error.h.
+data HeifError
+  = HeifErrorOk
+  | HeifErrorInputDoesNotExist
+  | HeifErrorInvalidInput
+  | HeifErrorUnsupportedFiletype
+  | HeifErrorUnsupportedFeature
+  | HeifErrorUsageError
+  | HeifErrorMemoryAllocationError
+  | HeifErrorDecoderPluginError
+  | HeifErrorEncoderPluginError
+  | HeifErrorEncodingError
+  | HeifErrorColorProfileDoesNotExist
+  | HeifErrorPluginLoadingError
+  | HeifErrorCanceled
+  | HeifErrorEndOfSequence
+  deriving (Show, Eq)
+
+-- | Maps to C enum heif_suberror_code from libheif/heif_error.h.
+data HeifSubError
+  = HeifSubErrorUnspecified
+  | HeifSubErrorEndOfData
+  | HeifSubErrorInvalidBoxSize
+  | HeifSubErrorNoFtypBox
+  | HeifSubErrorNoIdatBox
+  | HeifSubErrorNoMetaBox
+  | HeifSubErrorNoHdlrBox
+  | HeifSubErrorNoHvcCBox
+  | HeifSubErrorNoPitmBox
+  | HeifSubErrorNoIpcoBox
+  | HeifSubErrorNoIpmaBox
+  | HeifSubErrorNoIlocBox
+  | HeifSubErrorNoIinfBox
+  | HeifSubErrorNoIprpBox
+  | HeifSubErrorNoIrefBox
+  | HeifSubErrorNoPictHandler
+  | HeifSubErrorIpmaBoxReferencesNonexistingProperty
+  | HeifSubErrorNoPropertiesAssignedToItem
+  | HeifSubErrorNoItemData
+  | HeifSubErrorInvalidGridData
+  | HeifSubErrorMissingGridImages
+  | HeifSubErrorInvalidCleanAperture
+  | HeifSubErrorInvalidOverlayData
+  | HeifSubErrorOverlayImageOutsideOfCanvas
+  | HeifSubErrorAuxiliaryImageTypeUnspecified
+  | HeifSubErrorNoOrInvalidPrimaryItem
+  | HeifSubErrorNoInfeBox
+  | HeifSubErrorUnknownColorProfileType
+  | HeifSubErrorWrongTileImageChromaFormat
+  | HeifSubErrorInvalidFractionalNumber
+  | HeifSubErrorInvalidImageSize
+  | HeifSubErrorInvalidPixiBox
+  | HeifSubErrorNoAv1CBox
+  | HeifSubErrorWrongTileImagePixelDepth
+  | HeifSubErrorUnknownNCLXColorPrimaries
+  | HeifSubErrorUnknownNCLXTransferCharacteristics
+  | HeifSubErrorUnknownNCLXMatrixCoefficients
+  | HeifSubErrorInvalidRegionData
+  | HeifSubErrorNoIspeProperty
+  | HeifSubErrorCameraIntrinsicMatrixUndefined
+  | HeifSubErrorCameraExtrinsicMatrixUndefined
+  | HeifSubErrorInvalidJ2KCodestream
+  | HeifSubErrorNoVvcCBox
+  | HeifSubErrorNoIcbrBox
+  | HeifSubErrorNoAvcCBox
+  | HeifSubErrorInvalidMiniBox
+  | HeifSubErrorDecompressionInvalidData
+  | HeifSubErrorNoMoovBox
+  | HeifSubErrorNCLXColrVUIMismatch
+  | HeifSubErrorSecurityLimitExceeded
+  | HeifSubErrorCompressionInitialisationError
+  | HeifSubErrorNonexistingItemReferenced
+  | HeifSubErrorNullPointerArgument
+  | HeifSubErrorNonexistingImageChannelReferenced
+  | HeifSubErrorUnsupportedPluginVersion
+  | HeifSubErrorUnsupportedWriterVersion
+  | HeifSubErrorUnsupportedParameter
+  | HeifSubErrorInvalidParameterValue
+  | HeifSubErrorInvalidProperty
+  | HeifSubErrorItemReferenceCycle
+  | HeifSubErrorUnsupportedCodec
+  | HeifSubErrorUnsupportedImageType
+  | HeifSubErrorUnsupportedDataVersion
+  | HeifSubErrorUnsupportedColorConversion
+  | HeifSubErrorUnsupportedItemConstructionMethod
+  | HeifSubErrorUnsupportedHeaderCompressionMethod
+  | HeifSubErrorUnsupportedGenericCompressionMethod
+  | HeifSubErrorUnsupportedEssentialProperty
+  | HeifSubErrorUnsupportedTrackType
+  | HeifSubErrorUnsupportedBitDepth
+  | HeifSubErrorCannotWriteOutputData
+  | HeifSubErrorEncoderInitialization
+  | HeifSubErrorEncoderEncoding
+  | HeifSubErrorEncoderCleanup
+  | HeifSubErrorTooManyRegions
+  | HeifSubErrorPluginLoadingError
+  | HeifSubErrorPluginIsNotLoaded
+  | HeifSubErrorCannotReadPluginDirectory
+  | HeifSubErrorNoMatchingDecoderInstalled
+  deriving (Show, Eq)
diff --git a/src/Codec/HEIF/Error/Internal.hs b/src/Codec/HEIF/Error/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Codec/HEIF/Error/Internal.hs
@@ -0,0 +1,166 @@
+module Codec.HEIF.Error.Internal
+  ( convertHeifErrorCode,
+    convertHeifSubErrorCode,
+  )
+where
+
+import Codec.HEIF.Bindings.Generated qualified as HEIF
+import Codec.HEIF.Error
+
+convertHeifErrorCode :: HEIF.Heif_error_code -> HeifError
+convertHeifErrorCode HEIF.Heif_error_Ok = HeifErrorOk
+convertHeifErrorCode HEIF.Heif_error_Input_does_not_exist = HeifErrorInputDoesNotExist
+convertHeifErrorCode HEIF.Heif_error_Invalid_input = HeifErrorInvalidInput
+convertHeifErrorCode HEIF.Heif_error_Unsupported_filetype = HeifErrorUnsupportedFiletype
+convertHeifErrorCode HEIF.Heif_error_Unsupported_feature = HeifErrorUnsupportedFeature
+convertHeifErrorCode HEIF.Heif_error_Usage_error = HeifErrorUsageError
+convertHeifErrorCode HEIF.Heif_error_Memory_allocation_error = HeifErrorMemoryAllocationError
+convertHeifErrorCode HEIF.Heif_error_Decoder_plugin_error = HeifErrorDecoderPluginError
+convertHeifErrorCode HEIF.Heif_error_Encoder_plugin_error = HeifErrorEncoderPluginError
+convertHeifErrorCode HEIF.Heif_error_Encoding_error = HeifErrorEncodingError
+convertHeifErrorCode HEIF.Heif_error_Color_profile_does_not_exist =
+  HeifErrorColorProfileDoesNotExist
+convertHeifErrorCode HEIF.Heif_error_Plugin_loading_error = HeifErrorPluginLoadingError
+convertHeifErrorCode HEIF.Heif_error_Canceled = HeifErrorCanceled
+convertHeifErrorCode HEIF.Heif_error_End_of_sequence = HeifErrorEndOfSequence
+
+convertHeifSubErrorCode :: HEIF.Heif_suberror_code -> HeifSubError
+convertHeifSubErrorCode HEIF.Heif_suberror_Unspecified = HeifSubErrorUnspecified
+convertHeifSubErrorCode HEIF.Heif_suberror_End_of_data = HeifSubErrorEndOfData
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_box_size = HeifSubErrorInvalidBoxSize
+convertHeifSubErrorCode HEIF.Heif_suberror_No_ftyp_box = HeifSubErrorNoFtypBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_idat_box = HeifSubErrorNoIdatBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_meta_box = HeifSubErrorNoMetaBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_hdlr_box = HeifSubErrorNoHdlrBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_hvcC_box = HeifSubErrorNoHvcCBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_pitm_box = HeifSubErrorNoPitmBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_ipco_box = HeifSubErrorNoIpcoBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_ipma_box = HeifSubErrorNoIpmaBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_iloc_box = HeifSubErrorNoIlocBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_iinf_box = HeifSubErrorNoIinfBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_iprp_box = HeifSubErrorNoIprpBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_iref_box = HeifSubErrorNoIrefBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_pict_handler = HeifSubErrorNoPictHandler
+convertHeifSubErrorCode HEIF.Heif_suberror_Ipma_box_references_nonexisting_property =
+  HeifSubErrorIpmaBoxReferencesNonexistingProperty
+convertHeifSubErrorCode HEIF.Heif_suberror_No_properties_assigned_to_item =
+  HeifSubErrorNoPropertiesAssignedToItem
+convertHeifSubErrorCode HEIF.Heif_suberror_No_item_data =
+  HeifSubErrorNoItemData
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_grid_data =
+  HeifSubErrorInvalidGridData
+convertHeifSubErrorCode HEIF.Heif_suberror_Missing_grid_images =
+  HeifSubErrorMissingGridImages
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_clean_aperture =
+  HeifSubErrorInvalidCleanAperture
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_overlay_data =
+  HeifSubErrorInvalidOverlayData
+convertHeifSubErrorCode HEIF.Heif_suberror_Overlay_image_outside_of_canvas =
+  HeifSubErrorOverlayImageOutsideOfCanvas
+convertHeifSubErrorCode HEIF.Heif_suberror_Auxiliary_image_type_unspecified =
+  HeifSubErrorAuxiliaryImageTypeUnspecified
+convertHeifSubErrorCode HEIF.Heif_suberror_No_or_invalid_primary_item =
+  HeifSubErrorNoOrInvalidPrimaryItem
+convertHeifSubErrorCode HEIF.Heif_suberror_No_infe_box = HeifSubErrorNoInfeBox
+convertHeifSubErrorCode HEIF.Heif_suberror_Unknown_color_profile_type =
+  HeifSubErrorUnknownColorProfileType
+convertHeifSubErrorCode HEIF.Heif_suberror_Wrong_tile_image_chroma_format =
+  HeifSubErrorWrongTileImageChromaFormat
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_fractional_number =
+  HeifSubErrorInvalidFractionalNumber
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_image_size =
+  HeifSubErrorInvalidImageSize
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_pixi_box =
+  HeifSubErrorInvalidPixiBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_av1C_box =
+  HeifSubErrorNoAv1CBox
+convertHeifSubErrorCode HEIF.Heif_suberror_Wrong_tile_image_pixel_depth =
+  HeifSubErrorWrongTileImagePixelDepth
+convertHeifSubErrorCode HEIF.Heif_suberror_Unknown_NCLX_color_primaries =
+  HeifSubErrorUnknownNCLXColorPrimaries
+convertHeifSubErrorCode HEIF.Heif_suberror_Unknown_NCLX_transfer_characteristics =
+  HeifSubErrorUnknownNCLXTransferCharacteristics
+convertHeifSubErrorCode HEIF.Heif_suberror_Unknown_NCLX_matrix_coefficients =
+  HeifSubErrorUnknownNCLXMatrixCoefficients
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_region_data = HeifSubErrorInvalidRegionData
+convertHeifSubErrorCode HEIF.Heif_suberror_No_ispe_property = HeifSubErrorNoIspeProperty
+convertHeifSubErrorCode HEIF.Heif_suberror_Camera_intrinsic_matrix_undefined =
+  HeifSubErrorCameraIntrinsicMatrixUndefined
+convertHeifSubErrorCode HEIF.Heif_suberror_Camera_extrinsic_matrix_undefined =
+  HeifSubErrorCameraExtrinsicMatrixUndefined
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_J2K_codestream =
+  HeifSubErrorInvalidJ2KCodestream
+convertHeifSubErrorCode HEIF.Heif_suberror_No_vvcC_box =
+  HeifSubErrorNoVvcCBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_icbr_box =
+  HeifSubErrorNoIcbrBox
+convertHeifSubErrorCode HEIF.Heif_suberror_No_avcC_box =
+  HeifSubErrorNoAvcCBox
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_mini_box =
+  HeifSubErrorInvalidMiniBox
+convertHeifSubErrorCode HEIF.Heif_suberror_Decompression_invalid_data =
+  HeifSubErrorDecompressionInvalidData
+convertHeifSubErrorCode HEIF.Heif_suberror_No_moov_box =
+  HeifSubErrorNoMoovBox
+convertHeifSubErrorCode HEIF.Heif_suberror_NCLX_colr_VUI_mismatch =
+  HeifSubErrorNCLXColrVUIMismatch
+convertHeifSubErrorCode HEIF.Heif_suberror_Security_limit_exceeded =
+  HeifSubErrorSecurityLimitExceeded
+convertHeifSubErrorCode HEIF.Heif_suberror_Compression_initialisation_error =
+  HeifSubErrorCompressionInitialisationError
+convertHeifSubErrorCode HEIF.Heif_suberror_Nonexisting_item_referenced =
+  HeifSubErrorNonexistingItemReferenced
+convertHeifSubErrorCode HEIF.Heif_suberror_Null_pointer_argument =
+  HeifSubErrorNullPointerArgument
+convertHeifSubErrorCode HEIF.Heif_suberror_Nonexisting_image_channel_referenced =
+  HeifSubErrorNonexistingImageChannelReferenced
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_plugin_version =
+  HeifSubErrorUnsupportedPluginVersion
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_writer_version =
+  HeifSubErrorUnsupportedWriterVersion
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_parameter =
+  HeifSubErrorUnsupportedParameter
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_parameter_value =
+  HeifSubErrorInvalidParameterValue
+convertHeifSubErrorCode HEIF.Heif_suberror_Invalid_property =
+  HeifSubErrorInvalidProperty
+convertHeifSubErrorCode HEIF.Heif_suberror_Item_reference_cycle =
+  HeifSubErrorItemReferenceCycle
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_codec =
+  HeifSubErrorUnsupportedCodec
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_image_type =
+  HeifSubErrorUnsupportedImageType
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_data_version =
+  HeifSubErrorUnsupportedDataVersion
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_color_conversion =
+  HeifSubErrorUnsupportedColorConversion
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_item_construction_method =
+  HeifSubErrorUnsupportedItemConstructionMethod
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_header_compression_method =
+  HeifSubErrorUnsupportedHeaderCompressionMethod
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_generic_compression_method =
+  HeifSubErrorUnsupportedGenericCompressionMethod
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_essential_property =
+  HeifSubErrorUnsupportedEssentialProperty
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_track_type =
+  HeifSubErrorUnsupportedTrackType
+convertHeifSubErrorCode HEIF.Heif_suberror_Unsupported_bit_depth =
+  HeifSubErrorUnsupportedBitDepth
+convertHeifSubErrorCode HEIF.Heif_suberror_Cannot_write_output_data =
+  HeifSubErrorCannotWriteOutputData
+convertHeifSubErrorCode HEIF.Heif_suberror_Encoder_initialization =
+  HeifSubErrorEncoderInitialization
+convertHeifSubErrorCode HEIF.Heif_suberror_Encoder_encoding =
+  HeifSubErrorEncoderEncoding
+convertHeifSubErrorCode HEIF.Heif_suberror_Encoder_cleanup =
+  HeifSubErrorEncoderCleanup
+convertHeifSubErrorCode HEIF.Heif_suberror_Too_many_regions =
+  HeifSubErrorTooManyRegions
+convertHeifSubErrorCode HEIF.Heif_suberror_Plugin_loading_error =
+  HeifSubErrorPluginLoadingError
+convertHeifSubErrorCode HEIF.Heif_suberror_Plugin_is_not_loaded =
+  HeifSubErrorPluginIsNotLoaded
+convertHeifSubErrorCode HEIF.Heif_suberror_Cannot_read_plugin_directory =
+  HeifSubErrorCannotReadPluginDirectory
+convertHeifSubErrorCode HEIF.Heif_suberror_No_matching_decoder_installed =
+  HeifSubErrorNoMatchingDecoderInstalled
diff --git a/test/Main.hs b/test/Main.hs
new file mode 100644
--- /dev/null
+++ b/test/Main.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+import Codec.HEIF
+import Control.Monad
+import Data.ByteString qualified as BS
+import Data.ByteString.Lazy qualified as BSL
+import Data.Map qualified as M
+import SampleImage
+import System.Directory (doesFileExist)
+import System.IO.Temp (withSystemTempFile)
+import Test.Hspec
+
+main :: IO ()
+main = hspec spec
+
+inWasm :: Bool
+#if defined(__wasm32__) || defined(__wasm__) || defined(wasm32_HOST_ARCH)
+inWasm = True
+#else
+inWasm = False
+#endif
+
+isHEIFException :: HeifError -> HeifSubError -> HeifException -> Bool
+isHEIFException expectedCode expectedSubcode (LibraryException (Library {..})) =
+  code == expectedCode && subcode == expectedSubcode
+isHEIFException _ _ _ = False
+
+-- wasm has a virtual file system, some test steps are not executed there
+itOnNative :: String -> Expectation -> Spec
+itOnNative label test = it label $ do
+  when inWasm $ pendingWith "Test not supported on WASM target"
+  test
+
+spec :: Spec
+spec = describe "libheif-hs tests" $ do
+  describe "HEIF library inclusion" $ do
+    it "The linked library version is 1.23.1" $ do
+      x <- heifVersion
+      x `shouldBe` "1.23.1"
+    describe "Image RGB decoding" $ do
+      it "Fails with an empty image" $ do
+        decodeThrow defaultDecodeOptions mempty
+          `shouldThrow` isHEIFException HeifErrorInvalidInput HeifSubErrorUnspecified
+    itOnNative "Can decode a HEIC file to raw RGB pixels and metadata" $ do
+      let testFile = "./samples/heic-100x100.heic"
+      exists <- doesFileExist testFile
+      exists `shouldBe` True
+      Decoded {..} <- decodeFromFileThrow defaultDecodeOptions testFile
+      let Image {..} = decodedImage
+          expectedWidth = 100
+          expectedHeight = 100
+      imageWidth `shouldBe` expectedWidth
+      imageHeight `shouldBe` expectedHeight
+    it "Can decode HEIC file ByteString to raw RGB pixels and metadata" $ do
+      Decoded {..} <- decodeThrow defaultDecodeOptions sampleHEICFile
+      let Image {..} = decodedImage
+          expectedWidth = 100
+          expectedHeight = 100
+      imageWidth `shouldBe` expectedWidth
+      imageHeight `shouldBe` expectedHeight
+      BS.length imagePixelsRGB `shouldBe` fromIntegral (expectedWidth * expectedHeight * 3)
+      BS.unpack (BS.take 10 imagePixelsRGB)
+        `shouldBe` [59, 130, 246, 59, 130, 246, 59, 130, 246, 59]
+
+      let Metadata {..} = decodedMetadata
+      length metadataBlocks `shouldBe` 1
+      case M.toList metadataBlocks of
+        [(_, MetadataBlock {..})] -> do
+          metadataBlockType `shouldBe` Exif
+          BS.take 4 metadataBlockData `shouldBe` "Exif"
+        _ -> pure ()
+    it "Can decode encoded HEIC file" $ do
+      decoded <- decodeThrow defaultDecodeOptions sampleHEICFile
+      encoded <- encodeThrow defaultEncodeOptions decoded
+      decoded' <- decodeThrow defaultDecodeOptions $ BSL.toStrict encoded
+      decodedMetadata decoded `shouldBe` decodedMetadata decoded'
+      let image = decodedImage decoded
+          image' = decodedImage decoded'
+          compareNumberOfBytes = 10
+      imageWidth image `shouldBe` imageWidth image'
+      imageHeight image `shouldBe` imageHeight image'
+      -- The sample image contains solid colors in the beginning so we can compare only the first
+      -- part of the image, otherwise because of compression/decompression differences the RGB
+      -- data is not be byte-to-byte identical
+      BS.take compareNumberOfBytes (imagePixelsRGB image)
+        `shouldBe` BS.take compareNumberOfBytes (imagePixelsRGB image')
+    itOnNative "Can encode HEIC to file" $ do
+      withSystemTempFile "test.heic" $ \testFile _ -> do
+        decoded <- decodeThrow defaultDecodeOptions sampleHEICFile
+        encodeToFileThrow defaultEncodeOptions testFile decoded
+        doesFileExist testFile >>= (`shouldBe` True)
diff --git a/test/SampleImage.hs b/test/SampleImage.hs
new file mode 100644
--- /dev/null
+++ b/test/SampleImage.hs
@@ -0,0 +1,1368 @@
+module SampleImage (sampleHEICFile) where
+
+import Data.ByteString qualified as BS
+
+sampleHEICFile :: BS.ByteString
+sampleHEICFile =
+  BS.pack
+    [ 0x00,
+      0x00,
+      0x00,
+      0x24,
+      0x66,
+      0x74,
+      0x79,
+      0x70,
+      0x68,
+      0x65,
+      0x69,
+      0x63,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x6d,
+      0x69,
+      0x66,
+      0x31,
+      0x4d,
+      0x69,
+      0x50,
+      0x72,
+      0x6d,
+      0x69,
+      0x61,
+      0x66,
+      0x4d,
+      0x69,
+      0x48,
+      0x42,
+      0x68,
+      0x65,
+      0x69,
+      0x63,
+      0x00,
+      0x00,
+      0x01,
+      0xc2,
+      0x6d,
+      0x65,
+      0x74,
+      0x61,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x21,
+      0x68,
+      0x64,
+      0x6c,
+      0x72,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x70,
+      0x69,
+      0x63,
+      0x74,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x24,
+      0x64,
+      0x69,
+      0x6e,
+      0x66,
+      0x00,
+      0x00,
+      0x00,
+      0x1c,
+      0x64,
+      0x72,
+      0x65,
+      0x66,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x0c,
+      0x75,
+      0x72,
+      0x6c,
+      0x20,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x0e,
+      0x70,
+      0x69,
+      0x74,
+      0x6d,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x38,
+      0x69,
+      0x69,
+      0x6e,
+      0x66,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x02,
+      0x00,
+      0x00,
+      0x00,
+      0x15,
+      0x69,
+      0x6e,
+      0x66,
+      0x65,
+      0x02,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x68,
+      0x76,
+      0x63,
+      0x31,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x15,
+      0x69,
+      0x6e,
+      0x66,
+      0x65,
+      0x02,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x02,
+      0x00,
+      0x00,
+      0x45,
+      0x78,
+      0x69,
+      0x66,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x1a,
+      0x69,
+      0x72,
+      0x65,
+      0x66,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x0e,
+      0x63,
+      0x64,
+      0x73,
+      0x63,
+      0x00,
+      0x02,
+      0x00,
+      0x01,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0xe5,
+      0x69,
+      0x70,
+      0x72,
+      0x70,
+      0x00,
+      0x00,
+      0x00,
+      0xc4,
+      0x69,
+      0x70,
+      0x63,
+      0x6f,
+      0x00,
+      0x00,
+      0x00,
+      0x13,
+      0x63,
+      0x6f,
+      0x6c,
+      0x72,
+      0x6e,
+      0x63,
+      0x6c,
+      0x78,
+      0x00,
+      0x02,
+      0x00,
+      0x02,
+      0x00,
+      0x06,
+      0x80,
+      0x00,
+      0x00,
+      0x00,
+      0x0c,
+      0x63,
+      0x6c,
+      0x6c,
+      0x69,
+      0x00,
+      0xcb,
+      0x00,
+      0x40,
+      0x00,
+      0x00,
+      0x00,
+      0x14,
+      0x69,
+      0x73,
+      0x70,
+      0x65,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x64,
+      0x00,
+      0x00,
+      0x00,
+      0x64,
+      0x00,
+      0x00,
+      0x00,
+      0x09,
+      0x69,
+      0x72,
+      0x6f,
+      0x74,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x10,
+      0x70,
+      0x69,
+      0x78,
+      0x69,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x03,
+      0x08,
+      0x08,
+      0x08,
+      0x00,
+      0x00,
+      0x00,
+      0x70,
+      0x68,
+      0x76,
+      0x63,
+      0x43,
+      0x01,
+      0x03,
+      0x70,
+      0x00,
+      0x00,
+      0x00,
+      0xb0,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x1e,
+      0xf0,
+      0x00,
+      0xfc,
+      0xfd,
+      0xf8,
+      0xf8,
+      0x00,
+      0x00,
+      0x0b,
+      0x03,
+      0xa0,
+      0x00,
+      0x01,
+      0x00,
+      0x17,
+      0x40,
+      0x01,
+      0x0c,
+      0x01,
+      0xff,
+      0xff,
+      0x03,
+      0x70,
+      0x00,
+      0x00,
+      0x03,
+      0x00,
+      0xb0,
+      0x00,
+      0x00,
+      0x03,
+      0x00,
+      0x00,
+      0x03,
+      0x00,
+      0x1e,
+      0x70,
+      0x24,
+      0xa1,
+      0x00,
+      0x01,
+      0x00,
+      0x22,
+      0x42,
+      0x01,
+      0x01,
+      0x03,
+      0x70,
+      0x00,
+      0x00,
+      0x03,
+      0x00,
+      0xb0,
+      0x00,
+      0x00,
+      0x03,
+      0x00,
+      0x00,
+      0x03,
+      0x00,
+      0x1e,
+      0xa0,
+      0x14,
+      0x20,
+      0x71,
+      0xc3,
+      0xf3,
+      0xe2,
+      0x1e,
+      0xe4,
+      0x59,
+      0x54,
+      0xdc,
+      0x08,
+      0x08,
+      0x18,
+      0x02,
+      0xa2,
+      0x00,
+      0x01,
+      0x00,
+      0x09,
+      0x44,
+      0x01,
+      0xc0,
+      0x61,
+      0x72,
+      0xc8,
+      0x44,
+      0x53,
+      0x64,
+      0x00,
+      0x00,
+      0x00,
+      0x19,
+      0x69,
+      0x70,
+      0x6d,
+      0x61,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x01,
+      0x06,
+      0x81,
+      0x02,
+      0x03,
+      0x84,
+      0x05,
+      0x86,
+      0x00,
+      0x00,
+      0x00,
+      0x2c,
+      0x69,
+      0x6c,
+      0x6f,
+      0x63,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x44,
+      0x00,
+      0x00,
+      0x02,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x02,
+      0x42,
+      0x00,
+      0x00,
+      0x03,
+      0x0e,
+      0x00,
+      0x02,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x01,
+      0xf6,
+      0x00,
+      0x00,
+      0x00,
+      0x4c,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x6d,
+      0x64,
+      0x61,
+      0x74,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x03,
+      0x6a,
+      0x00,
+      0x00,
+      0x00,
+      0x06,
+      0x45,
+      0x78,
+      0x69,
+      0x66,
+      0x00,
+      0x00,
+      0x4d,
+      0x4d,
+      0x00,
+      0x2a,
+      0x00,
+      0x00,
+      0x00,
+      0x08,
+      0x00,
+      0x03,
+      0x01,
+      0x1a,
+      0x00,
+      0x05,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x32,
+      0x01,
+      0x1b,
+      0x00,
+      0x05,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x3a,
+      0x01,
+      0x28,
+      0x00,
+      0x03,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x02,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x00,
+      0x48,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x00,
+      0x48,
+      0x00,
+      0x00,
+      0x00,
+      0x01,
+      0x00,
+      0x00,
+      0x03,
+      0x0a,
+      0x28,
+      0x01,
+      0xaf,
+      0x90,
+      0x50,
+      0x39,
+      0x68,
+      0x01,
+      0x10,
+      0x46,
+      0x81,
+      0x7c,
+      0xff,
+      0xec,
+      0x0f,
+      0xeb,
+      0xfe,
+      0xa9,
+      0x7f,
+      0xff,
+      0xdd,
+      0xf3,
+      0x8f,
+      0xb1,
+      0x6f,
+      0xd9,
+      0xe6,
+      0xb1,
+      0xa2,
+      0x5f,
+      0x95,
+      0xff,
+      0xf7,
+      0x47,
+      0xad,
+      0xfe,
+      0x03,
+      0x7d,
+      0x22,
+      0x7a,
+      0x46,
+      0x69,
+      0xa7,
+      0xd3,
+      0xc3,
+      0x84,
+      0xa9,
+      0xeb,
+      0x60,
+      0x93,
+      0xbf,
+      0xd3,
+      0xd3,
+      0xe0,
+      0x17,
+      0x26,
+      0x5e,
+      0x48,
+      0x85,
+      0xf9,
+      0xf5,
+      0x03,
+      0xd0,
+      0xac,
+      0x47,
+      0xec,
+      0x09,
+      0x8c,
+      0x8b,
+      0x08,
+      0x81,
+      0x07,
+      0x41,
+      0x5b,
+      0xd5,
+      0xc0,
+      0xb3,
+      0x9d,
+      0x90,
+      0x96,
+      0xd4,
+      0x95,
+      0x5c,
+      0xe9,
+      0x79,
+      0x8f,
+      0x7a,
+      0x8a,
+      0x22,
+      0xe0,
+      0x21,
+      0xb3,
+      0x7d,
+      0xa8,
+      0xe6,
+      0xa8,
+      0xb5,
+      0x7d,
+      0x4d,
+      0xe2,
+      0x5f,
+      0xea,
+      0x9c,
+      0xc7,
+      0x03,
+      0x84,
+      0xb6,
+      0x0b,
+      0x99,
+      0x4e,
+      0xe6,
+      0xb7,
+      0xc3,
+      0x93,
+      0x60,
+      0x60,
+      0xd2,
+      0x65,
+      0x97,
+      0x56,
+      0x01,
+      0xa0,
+      0xc3,
+      0xf7,
+      0x14,
+      0xbd,
+      0xcd,
+      0xd5,
+      0xd2,
+      0xf0,
+      0x8d,
+      0xd3,
+      0x76,
+      0xf5,
+      0x4c,
+      0x37,
+      0x2a,
+      0xe0,
+      0x57,
+      0x7f,
+      0xdf,
+      0xd6,
+      0x92,
+      0xee,
+      0x57,
+      0x7f,
+      0x1b,
+      0x26,
+      0x31,
+      0xbd,
+      0x6d,
+      0xa0,
+      0x04,
+      0xca,
+      0x30,
+      0x5d,
+      0x51,
+      0x83,
+      0x97,
+      0x97,
+      0x04,
+      0x45,
+      0xd3,
+      0x13,
+      0x30,
+      0x5e,
+      0xd3,
+      0x72,
+      0xa5,
+      0xa2,
+      0x9b,
+      0x6b,
+      0x4a,
+      0x03,
+      0xea,
+      0x98,
+      0x5a,
+      0xca,
+      0xdf,
+      0x1d,
+      0xe3,
+      0x78,
+      0x27,
+      0x9f,
+      0x8d,
+      0xa6,
+      0xa8,
+      0x82,
+      0xc5,
+      0xef,
+      0xce,
+      0x35,
+      0x09,
+      0xa7,
+      0xab,
+      0x52,
+      0x6d,
+      0xd9,
+      0xdd,
+      0x2c,
+      0xc6,
+      0x7c,
+      0xe4,
+      0xdb,
+      0x2b,
+      0x0c,
+      0x4b,
+      0x06,
+      0xf7,
+      0xdc,
+      0x0e,
+      0x4a,
+      0x78,
+      0x07,
+      0xdb,
+      0x95,
+      0x9d,
+      0x36,
+      0x71,
+      0xf5,
+      0x60,
+      0xf9,
+      0x8f,
+      0x96,
+      0xbe,
+      0xa0,
+      0x8c,
+      0x56,
+      0xe0,
+      0x68,
+      0x92,
+      0x67,
+      0xff,
+      0x37,
+      0xeb,
+      0x43,
+      0x69,
+      0x6a,
+      0x8f,
+      0x04,
+      0xc0,
+      0xad,
+      0x8e,
+      0x1f,
+      0xec,
+      0x25,
+      0xfe,
+      0x5c,
+      0xcc,
+      0x84,
+      0x29,
+      0x78,
+      0x17,
+      0x60,
+      0x34,
+      0x87,
+      0xe8,
+      0xaf,
+      0x30,
+      0x8d,
+      0xd8,
+      0xa2,
+      0x50,
+      0x30,
+      0x0b,
+      0x88,
+      0x10,
+      0x69,
+      0x10,
+      0x35,
+      0x04,
+      0xfe,
+      0x16,
+      0xf1,
+      0xe2,
+      0xff,
+      0x90,
+      0x9c,
+      0x9e,
+      0xe1,
+      0x1c,
+      0x4d,
+      0x4d,
+      0x5a,
+      0x16,
+      0x9a,
+      0x5a,
+      0x53,
+      0xd7,
+      0x96,
+      0x54,
+      0xea,
+      0x73,
+      0xe9,
+      0x3a,
+      0x80,
+      0x17,
+      0x89,
+      0x43,
+      0xc8,
+      0x76,
+      0xfe,
+      0x47,
+      0xb5,
+      0xe4,
+      0xd9,
+      0x87,
+      0x86,
+      0x3a,
+      0xd2,
+      0xe6,
+      0x92,
+      0x87,
+      0xb3,
+      0x94,
+      0x63,
+      0xc6,
+      0xc1,
+      0xf8,
+      0x75,
+      0x36,
+      0xaf,
+      0xf8,
+      0x92,
+      0x2b,
+      0xa6,
+      0x29,
+      0x88,
+      0x1b,
+      0x5f,
+      0x80,
+      0x0d,
+      0x8a,
+      0xe6,
+      0xfe,
+      0x92,
+      0xf9,
+      0x6a,
+      0x92,
+      0x45,
+      0x9d,
+      0xd6,
+      0xb2,
+      0x4b,
+      0x90,
+      0x02,
+      0x27,
+      0x02,
+      0x2d,
+      0x39,
+      0x3a,
+      0xf5,
+      0x9a,
+      0x60,
+      0xac,
+      0xe4,
+      0xe4,
+      0x14,
+      0x0d,
+      0x55,
+      0xfd,
+      0x69,
+      0x3a,
+      0xe5,
+      0x1d,
+      0xfa,
+      0xf9,
+      0x3e,
+      0xa2,
+      0x8a,
+      0x9b,
+      0xda,
+      0x20,
+      0xf3,
+      0xca,
+      0x92,
+      0x65,
+      0x27,
+      0x07,
+      0xe3,
+      0xe5,
+      0x77,
+      0x77,
+      0xbf,
+      0xfd,
+      0x41,
+      0xb7,
+      0xff,
+      0x31,
+      0x69,
+      0xed,
+      0x37,
+      0x8a,
+      0x0a,
+      0x01,
+      0x56,
+      0x32,
+      0x37,
+      0xb4,
+      0x1c,
+      0x51,
+      0x6b,
+      0x62,
+      0x89,
+      0x66,
+      0x74,
+      0x4a,
+      0x28,
+      0x8a,
+      0x1b,
+      0xf9,
+      0x04,
+      0x0d,
+      0x89,
+      0xe7,
+      0x4a,
+      0xd2,
+      0xd0,
+      0x72,
+      0xd7,
+      0xb3,
+      0xa9,
+      0xe9,
+      0x0a,
+      0x1f,
+      0xbf,
+      0x24,
+      0x56,
+      0x90,
+      0xdc,
+      0xb5,
+      0x47,
+      0x67,
+      0x82,
+      0x3d,
+      0x4a,
+      0xd6,
+      0xfb,
+      0x89,
+      0x4a,
+      0xf0,
+      0x7e,
+      0xef,
+      0xb0,
+      0x33,
+      0x60,
+      0x10,
+      0x69,
+      0xc4,
+      0xdb,
+      0x9c,
+      0xf7,
+      0xa3,
+      0xe5,
+      0xc4,
+      0x1f,
+      0xdf,
+      0x08,
+      0xc2,
+      0x8a,
+      0xcd,
+      0x39,
+      0xea,
+      0x72,
+      0xef,
+      0xf3,
+      0x73,
+      0x6b,
+      0x73,
+      0xaa,
+      0x99,
+      0xc5,
+      0x56,
+      0xaf,
+      0x9a,
+      0x24,
+      0x51,
+      0x2c,
+      0xe9,
+      0xe2,
+      0xa0,
+      0xef,
+      0xd9,
+      0xd0,
+      0x9b,
+      0x3b,
+      0xfd,
+      0x9f,
+      0xe3,
+      0xd2,
+      0x9f,
+      0xff,
+      0xf7,
+      0x37,
+      0x87,
+      0xa7,
+      0x00,
+      0x34,
+      0x9a,
+      0x12,
+      0xc6,
+      0xa1,
+      0xbb,
+      0xd5,
+      0xe2,
+      0x5f,
+      0xc8,
+      0xb7,
+      0x39,
+      0x3a,
+      0x4a,
+      0x97,
+      0xa7,
+      0x26,
+      0x97,
+      0x42,
+      0xae,
+      0xf4,
+      0xb2,
+      0x5b,
+      0x3c,
+      0xbd,
+      0x73,
+      0x31,
+      0xf7,
+      0x91,
+      0xff,
+      0x22,
+      0x4e,
+      0xad,
+      0x3a,
+      0xef,
+      0x9a,
+      0x11,
+      0x16,
+      0xf0,
+      0xa0,
+      0x5e,
+      0xdc,
+      0xc3,
+      0x88,
+      0x89,
+      0x93,
+      0x73,
+      0x52,
+      0x3c,
+      0x25,
+      0x22,
+      0x5f,
+      0xa3,
+      0xc8,
+      0xce,
+      0x37,
+      0xf9,
+      0xe0,
+      0xeb,
+      0xd5,
+      0x7b,
+      0x5f,
+      0xe0,
+      0x05,
+      0x0a,
+      0x96,
+      0xde,
+      0xea,
+      0x71,
+      0x36,
+      0xc2,
+      0x0f,
+      0xc0,
+      0xbb,
+      0x4d,
+      0xd2,
+      0x4b,
+      0x16,
+      0xa0,
+      0x02,
+      0xe2,
+      0xd0,
+      0xca,
+      0x0f,
+      0x8c,
+      0x78,
+      0x60,
+      0xb7,
+      0xd9,
+      0x33,
+      0x36,
+      0xff,
+      0xb7,
+      0xdc,
+      0x38,
+      0x8e,
+      0x3b,
+      0xba,
+      0xa6,
+      0xb7,
+      0xd0,
+      0x6c,
+      0x94,
+      0x1e,
+      0x61,
+      0x2e,
+      0x10,
+      0xf7,
+      0xe2,
+      0x14,
+      0x30,
+      0x4b,
+      0xc4,
+      0x97,
+      0xa4,
+      0x18,
+      0x36,
+      0x37,
+      0xc7,
+      0xeb,
+      0x81,
+      0x7a,
+      0x47,
+      0x19,
+      0x71,
+      0x51,
+      0xf0,
+      0x28,
+      0x2d,
+      0x54,
+      0x7c,
+      0xc9,
+      0xcc,
+      0x25,
+      0x3d,
+      0xd7,
+      0xee,
+      0x1a,
+      0x32,
+      0xcf,
+      0x63,
+      0x1f,
+      0x00,
+      0x09,
+      0x21,
+      0x81,
+      0xfe,
+      0xac,
+      0xcb,
+      0x39,
+      0x92,
+      0x17,
+      0x49,
+      0x10,
+      0x12,
+      0xf3,
+      0x0b,
+      0x66,
+      0x78,
+      0x37,
+      0xd0,
+      0x11,
+      0x8d,
+      0x41,
+      0x78,
+      0x34,
+      0x8e,
+      0xfa,
+      0x8b,
+      0x2a,
+      0xcb,
+      0x68,
+      0xbf,
+      0xda,
+      0xe4,
+      0x3c,
+      0x31,
+      0xd9,
+      0xfe,
+      0x77,
+      0x6b,
+      0x1d,
+      0x68,
+      0x4c,
+      0xab,
+      0xdd,
+      0xc8,
+      0x3c,
+      0x45,
+      0x28,
+      0x76,
+      0xf9,
+      0xd2,
+      0x5f,
+      0xd1,
+      0xf8,
+      0x7b,
+      0xfc,
+      0x2d,
+      0x92,
+      0x7f,
+      0x18,
+      0x52,
+      0x25,
+      0x40,
+      0xff,
+      0x60,
+      0xfe,
+      0x00,
+      0xa1,
+      0x4d,
+      0x43,
+      0x1c,
+      0xf0,
+      0x08,
+      0x22,
+      0x05,
+      0x66,
+      0xf7,
+      0x05,
+      0x58,
+      0x95,
+      0x7d,
+      0x14,
+      0x13,
+      0x75,
+      0x4d,
+      0x83,
+      0x14,
+      0xe2,
+      0xf3,
+      0xce,
+      0xf4,
+      0xe2,
+      0x35,
+      0xde,
+      0x8f,
+      0x6e,
+      0xe2,
+      0x68,
+      0x2d,
+      0xc9,
+      0x03,
+      0xb0,
+      0x17,
+      0xfb,
+      0x60,
+      0xaf,
+      0xef,
+      0x45,
+      0x16,
+      0xfd,
+      0x7d,
+      0xd5,
+      0xad,
+      0x96,
+      0xf3,
+      0xc7,
+      0xcc,
+      0x63,
+      0x7b,
+      0xa0,
+      0x54,
+      0xc5,
+      0xb2,
+      0x46,
+      0x23,
+      0x2b,
+      0xd6,
+      0xdf,
+      0x60,
+      0x48,
+      0xdf,
+      0x07,
+      0x5d,
+      0x60,
+      0x00,
+      0x0c,
+      0xf9,
+      0xc9,
+      0x60
+    ]
