fltkhs 0.5.3.3 → 0.5.3.4
raw patch · 3 files changed
+32/−4 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- fltkhs.cabal +2/−1
- src/Graphics/UI/FLTK/LowLevel/Dispatch.hs +29/−2
- src/Graphics/UI/FLTK/LowLevel/FLTKHS.hs +1/−1
fltkhs.cabal view
@@ -1,5 +1,5 @@ name : fltkhs-version : 0.5.3.3+version : 0.5.3.4 synopsis : FLTK bindings description: Low level bindings for the FLTK GUI toolkit. For installation and quick start instruction please scroll all the way down to the README. license : MIT@@ -144,6 +144,7 @@ ghc-options: -Wall -fno-warn-name-shadowing -fno-warn-orphans -fno-warn-unused-matches -fno-warn-dodgy-exports if impl(ghc >= 8.0.1) cpp-options: -DHASCALLSTACK_AVAILABLE+ cpp-options: -DCUSTOM_TYPE_ERRORS else if impl(ghc >= 7.10.2) cpp-options: -DCALLSTACK_AVAILABLE
src/Graphics/UI/FLTK/LowLevel/Dispatch.hs view
@@ -2,6 +2,9 @@ #ifndef OVERLAPPING_INSTANCES_DEPRECATED {-# LANGUAGE OverlappingInstances #-} #endif+#ifdef CUSTOM_TYPE_ERRORS+{-# LANGUAGE TypeOperators #-}+#endif module Graphics.UI.FLTK.LowLevel.Dispatch ( -- * FindOp@@ -27,6 +30,9 @@ ) where import Graphics.UI.FLTK.LowLevel.Fl_Types+#ifdef CUSTOM_TYPE_ERRORS+import GHC.TypeLits+#endif -- Type level function where `b` is Same -- if `x` and `y` are equal and `Different`@@ -60,16 +66,38 @@ FindOpHelper orig (child ancestors) needle Different = FindOp orig ancestors needle type family FindOp orig hierarchy (needle :: *) :: * where+#ifdef CUSTOM_TYPE_ERRORS+ FindOp (w ws) () (n ()) = TypeError (+ ('ShowType n)+ ':<>:+ ('Text " is not supported by ")+ ':<>:+ ('ShowType w)+ )+#else FindOp orig () n = NoFunction n orig+#endif FindOp orig hierarchy needle = FindOpHelper orig hierarchy needle (Contains (Functions hierarchy) needle) -- | Find the first "object" of the given type -- | in the hierarchy. data InHierarchy+#ifndef CUSTOM_TYPE_ERRORS data NotInHierarchy a b+#endif type family FindInHierarchy (needle :: * ) (curr :: *) (haystack :: *) :: * where+#ifdef CUSTOM_TYPE_ERRORS+ FindInHierarchy (n ns) () (a as) = TypeError (+ ('ShowType n)+ ':<>:+ ('Text " is not a kind of ")+ ':<>:+ ('ShowType a)+ )+#else FindInHierarchy needle () (a as) = NotInHierarchy needle (a as)+#endif FindInHierarchy needle (a as) (a as) = InHierarchy FindInHierarchy needle (a as) (b bs) = FindInHierarchy needle as (b bs) @@ -81,7 +109,6 @@ class Parent a b instance (InHierarchy ~ FindInHierarchy a a b) => Parent a b - -- | Associate a "class" with it's member functions type family Functions (x :: *) :: * @@ -91,7 +118,7 @@ -- * @op@ - name of the function -- * @obj@ - the class that implements @op@ -- * @origObj@ - the class in the hierarchy where the search for @op@ started.--- Kept around in case the type in needed. The best example is `setCallback`+-- -- whose implementation is usually found much lower in the hierarchy but where -- we also want to enforce that the implementation take the type of the widget calling -- it.
src/Graphics/UI/FLTK/LowLevel/FLTKHS.hs view
@@ -1177,7 +1177,7 @@ -- longer to compile. To further emphasize, there does not appear to be any -- runtime performance issues. This is only a compile time problem. ----- To preserve the user's and my sanity a flag `fastCompile` has been+-- To preserve the user's sanity and mine a flag `fastCompile` has been -- introduced to the <https://github.com/deech/fltkhs-hello-world skeleton> <https://github.com/deech/fltkhs-fluid-hello-world projects>, the <https://github.com/deech/fltkhs-demos fltkhs-demos> and -- to the <https://github.com/deech/fltkhs-fluid-demos fltkhs-fluid-demos>. -- This flag which tells the compiler to skip some steps when