HeinrichApfelmus / threepenny-gui

GUI framework that uses the web browser as a display.
https://heinrichapfelmus.github.io/threepenny-gui/
Other
437 stars 77 forks source link

-Wall #261

Open sjakobi opened 2 years ago

sjakobi commented 2 years ago

I just noticed that this package doesn't use -Wall in the library or in the executables. When I enable -Wall for the library, I get (with GHC-9.2.1):

``` [ 1 of 29] Compiling Foreign.JavaScript.Include ( src/Foreign/JavaScript/Include.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Include.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Include.dyn_o ) src/Foreign/JavaScript/Include.hs:4:1: warning: [-Wunused-imports] The import of ‘Data.Functor’ is redundant except perhaps to import instances from ‘Data.Functor’ To import instances alone, use: import Data.Functor() | 4 | import Data.Functor | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Include.hs:11:5: warning: [-Wname-shadowing] This binding for ‘path’ shadows the existing binding bound at src/Foreign/JavaScript/Include.hs:10:9 | 11 | path <- makeRelativeToProject path | ^^^^ [ 2 of 29] Compiling Foreign.JavaScript.Resources ( src/Foreign/JavaScript/Resources.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Resources.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Resources.dyn_o ) [ 3 of 29] Compiling Foreign.RemotePtr ( src/Foreign/RemotePtr.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/RemotePtr.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/RemotePtr.dyn_o ) src/Foreign/RemotePtr.hs:20:1: warning: [-Wunused-imports] The import of ‘Control.Concurrent’ is redundant except perhaps to import instances from ‘Control.Concurrent’ To import instances alone, use: import Control.Concurrent() | 20 | import Control.Concurrent | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/RemotePtr.hs:23:1: warning: [-Wunused-imports] The import of ‘Data.Functor’ is redundant except perhaps to import instances from ‘Data.Functor’ To import instances alone, use: import Data.Functor() | 23 | import Data.Functor | ^^^^^^^^^^^^^^^^^^^ src/Foreign/RemotePtr.hs:26:1: warning: [-Wunused-imports] The import of ‘System.IO.Unsafe’ is redundant except perhaps to import instances from ‘System.IO.Unsafe’ To import instances alone, use: import System.IO.Unsafe() | 26 | import System.IO.Unsafe (unsafePerformIO) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/RemotePtr.hs:28:1: warning: [-Wunused-imports] The qualified import of ‘System.Mem.Weak’ is redundant except perhaps to import instances from ‘System.Mem.Weak’ To import instances alone, use: import System.Mem.Weak() | 28 | import qualified System.Mem.Weak as Weak | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/RemotePtr.hs:45:18: warning: [-Wunused-matches] Defined but not used: ‘r’ | 45 | mkWeakIORefValue r@(GHC.IORef (GHC.STRef r#)) v (GHC.IO f) = GHC.IO $ \s -> | ^ src/Foreign/RemotePtr.hs:136:9: warning: [-Wname-shadowing] This binding for ‘finalize’ shadows the existing binding imported from ‘System.Mem.Weak’ at src/Foreign/RemotePtr.hs:27:1-63 (and originally defined in ‘GHC.Weak’) | 136 | let finalize = atomicModifyIORef' coupons $ \m -> (Map.delete coupon m, ()) | ^^^^^^^^ src/Foreign/RemotePtr.hs:158:11: warning: [-Wname-shadowing] This binding for ‘ptr’ shadows the existing binding bound at src/Foreign/RemotePtr.hs:151:15 | 158 | touch ptr = void $ readIORef ptr | ^^^ [ 4 of 29] Compiling Foreign.JavaScript.Types ( src/Foreign/JavaScript/Types.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Types.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Types.dyn_o ) src/Foreign/JavaScript/Types.hs:4:1: warning: [-Wunused-imports] The import of ‘Control.Applicative’ is redundant except perhaps to import instances from ‘Control.Applicative’ To import instances alone, use: import Control.Applicative() | 4 | import Control.Applicative | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Types.hs:7:1: warning: [-Wunused-imports] The import of ‘Control.Concurrent.Chan’ is redundant except perhaps to import instances from ‘Control.Concurrent.Chan’ To import instances alone, use: import Control.Concurrent.Chan() | 7 | import Control.Concurrent.Chan as Chan | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Types.hs:13:1: warning: [-Wunused-imports] The import of ‘Data.IORef’ is redundant except perhaps to import instances from ‘Data.IORef’ To import instances alone, use: import Data.IORef() | 13 | import Data.IORef | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Types.hs:124:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: newFilepaths :: (Integer, Map k a) | 124 | newFilepaths = (0, Map.empty) | ^^^^^^^^^^^^ src/Foreign/JavaScript/Types.hs:124:17: warning: [-Wtype-defaults] • Defaulting the following constraint to type ‘Integer’ Num a0 arising from the literal ‘0’ • In the expression: 0 In the expression: (0, Map.empty) In an equation for ‘newFilepaths’: newFilepaths = (0, Map.empty) | 124 | newFilepaths = (0, Map.empty) | ^ src/Foreign/JavaScript/Types.hs:155:5: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In an equation for ‘parseJSON’: Patterns of type ‘Value’ not matched: Array _ String _ Number _ Bool _ ... | 155 | parseJSON (Object msg) = do | ^^^^^^^^^^^^^^^^^^^^^^^^^^^... src/Foreign/JavaScript/Types.hs:157:9: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In a case alternative: Patterns of type ‘Text’ not matched: p where p is not one of {"Quit", "Exception", "Event", ...} | 157 | case (tag :: Text) of | ^^^^^^^^^^^^^^^^^^^^^... src/Foreign/JavaScript/Types.hs:190:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: t :: String -> Text | 190 | t s = fromString s :: Text | ^ src/Foreign/JavaScript/Types.hs:258:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: flushPeriod :: Int | 258 | flushPeriod = 300 :: Int | ^^^^^^^^^^^ [ 5 of 29] Compiling Foreign.JavaScript.Server ( src/Foreign/JavaScript/Server.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Server.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Server.dyn_o ) src/Foreign/JavaScript/Server.hs:7:1: warning: [-Wunused-imports] The import of ‘Control.Applicative’ is redundant except perhaps to import instances from ‘Control.Applicative’ To import instances alone, use: import Control.Applicative() | 7 | import Control.Applicative | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Server.hs:18:1: warning: [-Wunused-imports] The import of ‘Data.Text’ is redundant except perhaps to import instances from ‘Data.Text’ To import instances alone, use: import Data.Text() | 18 | import Data.Text | ^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Server.hs:24:1: warning: [-Wunused-imports] The import of ‘Data.Aeson’ is redundant except perhaps to import instances from ‘Data.Aeson’ To import instances alone, use: import Data.Aeson() | 24 | import Data.Aeson ((.=)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Server.hs:89:17: warning: [-Wname-shadowing] This binding for ‘input’ shadows the existing binding bound at src/Foreign/JavaScript/Server.hs:85:13 | 89 | input -> case JSON.decode input of | ^^^^^ src/Foreign/JavaScript/Server.hs:104:5: warning: [-Wunused-do-bind] A do-notation statement discarded a result of type ‘ThreadId’ Suppress this warning by saying ‘_ <- forkFinally (sendData `race_` readData `race_` sentry) $ \ _ -> void $ do commClose ....’ | 104 | forkFinally (sendData `race_` readData `race_` sentry) $ \_ -> void $ do | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... src/Foreign/JavaScript/Server.hs:111:13: warning: [-Wname-shadowing] This binding for ‘all’ shadows the existing bindings imported from ‘Prelude’ at src/Foreign/JavaScript/Server.hs:2:8-32 (and originally defined in ‘Data.Foldable’) imported from ‘Data.Text’ at src/Foreign/JavaScript/Server.hs:18:1-26 | 111 | all _ = Just () | ^^^ src/Foreign/JavaScript/Server.hs:131:44: warning: [-Wname-shadowing] This binding for ‘path’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 131 | withFilepath (sDirs server) (\path _ -> serveDirectory path)) | ^^^^ src/Foreign/JavaScript/Server.hs:137:25: warning: [-Wname-shadowing] This binding for ‘dir’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 137 | static = maybe [] (\dir -> [("/static", serveDirectory dir)]) staticDir | ^^^ src/Foreign/JavaScript/Server.hs:139:5: warning: [-Wname-shadowing] This binding for ‘root’ shadows the existing binding imported from ‘Foreign.JavaScript.Types’ at src/Foreign/JavaScript/Server.hs:34:1-31 (and originally defined at src/Foreign/JavaScript/Types.hs:301:1-4) | 139 | root = case customHTML of | ^^^^ src/Foreign/JavaScript/Server.hs:141:18: warning: [-Wname-shadowing] This binding for ‘dir’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 141 | Just dir -> serveFile (dir file) | ^^^ src/Foreign/JavaScript/Server.hs:145:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: writeTextMime :: MonadSnap m => Text -> ByteString -> m () | 145 | writeTextMime text mime = do | ^^^^^^^^^^^^^ src/Foreign/JavaScript/Server.hs:155:15: warning: [-Wname-shadowing] This binding for ‘path’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 155 | Just (path,mimetype) -> cont path (BS.pack mimetype) | ^^^^ src/Foreign/JavaScript/Server.hs:163:23: warning: [-Wname-shadowing] This binding for ‘path’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 163 | newAssociation rDict (path,mimetype) = do | ^^^^ src/Foreign/JavaScript/Server.hs:171:26: warning: [-Wname-shadowing] This binding for ‘path’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 171 | loadFile server mimetype path = do | ^^^^ src/Foreign/JavaScript/Server.hs:177:22: warning: [-Wname-shadowing] This binding for ‘path’ shadows the existing binding imported from ‘Snap.Core’ at src/Foreign/JavaScript/Server.hs:28:1-54 (and originally defined in ‘Snap.Internal.Core’) | 177 | loadDirectory server path = do | ^^^^ [ 6 of 29] Compiling Foreign.JavaScript.CallBuffer ( src/Foreign/JavaScript/CallBuffer.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/CallBuffer.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/CallBuffer.dyn_o ) src/Foreign/JavaScript/CallBuffer.hs:4:1: warning: [-Wunused-imports] The import of ‘Control.Concurrent’ is redundant except perhaps to import instances from ‘Control.Concurrent’ To import instances alone, use: import Control.Concurrent() | 4 | import Control.Concurrent | ^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/CallBuffer.hs:20:19: warning: [-Wunused-matches] Defined but not used: ‘w’ | 20 | getCallBufferMode w@Window{..} = atomically $ readTVar wCallBufferMode | ^ src/Foreign/JavaScript/CallBuffer.hs:29:27: warning: [-Wunused-matches] Defined but not used: ‘w’ | 29 | flushCallBufferWithAtomic w@Window{..} action = do | ^ src/Foreign/JavaScript/CallBuffer.hs:42:15: warning: [-Wunused-matches] Defined but not used: ‘w’ | 42 | bufferRunEval w@Window{..} code = do | ^ src/Foreign/JavaScript/CallBuffer.hs:54:14: warning: [-Wname-shadowing] This binding for ‘code’ shadows the existing binding bound at src/Foreign/JavaScript/CallBuffer.hs:42:28 | 54 | Just code -> runEval code | ^^^^ [ 7 of 29] Compiling Foreign.JavaScript.EventLoop ( src/Foreign/JavaScript/EventLoop.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/EventLoop.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/EventLoop.dyn_o ) src/Foreign/JavaScript/EventLoop.hs:9:1: warning: [-Wunused-imports] The import of ‘Control.Applicative’ is redundant except perhaps to import instances from ‘Control.Applicative’ To import instances alone, use: import Control.Applicative() | 9 | import Control.Applicative | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/EventLoop.hs:18:1: warning: [-Wunused-imports] The import of ‘Data.IORef’ is redundant except perhaps to import instances from ‘Data.IORef’ To import instances alone, use: import Data.IORef() | 18 | import Data.IORef | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/EventLoop.hs:19:1: warning: [-Wunused-imports] The qualified import of ‘Data.Map’ is redundant except perhaps to import instances from ‘Data.Map’ To import instances alone, use: import Data.Map() | 19 | import qualified Data.Map as Map | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/EventLoop.hs:21:1: warning: [-Wunused-imports] The qualified import of ‘System.Mem’ is redundant except perhaps to import instances from ‘System.Mem’ To import instances alone, use: import System.Mem() | 21 | import qualified System.Mem | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/EventLoop.hs:38:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: handleEvent :: Window -> (Coupon, JSON.Value) -> IO () | 38 | handleEvent w@(Window{..}) (name, args) = do | ^^^^^^^^^^^ src/Foreign/JavaScript/EventLoop.hs:38:13: warning: [-Wunused-matches] Defined but not used: ‘w’ | 38 | handleEvent w@(Window{..}) (name, args) = do | ^ src/Foreign/JavaScript/EventLoop.hs:42:40: warning: [-Wname-shadowing] This binding for ‘f’ shadows the existing binding bound at src/Foreign/JavaScript/EventLoop.hs:42:14 | 42 | Just f -> withRemotePtr f (\_ f -> f args) | ^ src/Foreign/JavaScript/EventLoop.hs:50:11: warning: [-Wname-shadowing] This binding for ‘init’ shadows the existing binding imported from ‘Prelude’ at src/Foreign/JavaScript/EventLoop.hs:3:8-35 (and originally defined in ‘GHC.List’) | 50 | eventLoop init server info comm = void $ do | ^^^^ src/Foreign/JavaScript/EventLoop.hs:108:13: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In a case alternative: Patterns of type ‘ClientMsg’ not matched: Quit | 108 | case msg of | ^^^^^^^^^^^... src/Foreign/JavaScript/EventLoop.hs:121:26: warning: [-Wname-shadowing] This binding for ‘ref’ shadows the existing binding bound at src/Foreign/JavaScript/EventLoop.hs:115:13 | 121 | Just ref -> do | ^^^ src/Foreign/JavaScript/EventLoop.hs:178:12: warning: [-Wunused-matches] Defined but not used: ‘w’ | 178 | newHandler w@(Window{..}) handler = do | ^ src/Foreign/JavaScript/EventLoop.hs:182:5: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In an equation for ‘fromSuccess’: Patterns of type ‘JSON.Result a’ not matched: JSON.Error _ | 182 | fromSuccess (JSON.Success x) = x | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/EventLoop.hs:192:9: warning: [-Wincomplete-uni-patterns] Pattern match(es) are non-exhaustive In a pattern binding: Patterns of type ‘JSON.Result Coupon’ not matched: JSON.Error _ | 192 | let JSON.Success coupon = JSON.fromJSON js | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [ 8 of 29] Compiling Foreign.JavaScript.Marshal ( src/Foreign/JavaScript/Marshal.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Marshal.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript/Marshal.dyn_o ) src/Foreign/JavaScript/Marshal.hs:22:1: warning: [-Wunused-imports] The qualified import of ‘Data.Aeson.Types’ is redundant except perhaps to import instances from ‘Data.Aeson.Types’ To import instances alone, use: import Data.Aeson.Types() | 22 | import qualified Data.Aeson.Types as JSON | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Marshal.hs:23:1: warning: [-Wunused-imports] The import of ‘Data.Functor’ is redundant except perhaps to import instances from ‘Data.Functor’ To import instances alone, use: import Data.Functor() | 23 | import Data.Functor ((<$>)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Marshal.hs:51:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: jsCode :: String -> IO JSCode | 51 | jsCode = return . JSCode | ^^^^^^ src/Foreign/JavaScript/Marshal.hs:96:5: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In an equation for ‘fromSuccessIO’: Patterns of type ‘Result a’ not matched: Error _ | 96 | fromSuccessIO (JSON.Success a) = return a | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript/Marshal.hs:118:22: warning: [-Wincomplete-uni-patterns] Pattern match(es) are non-exhaustive In a lambda abstraction: Patterns of type ‘Window’, ‘Value’ not matched: (Window _ _ _ _ _ _ _ _ _ _ _ _) (Object _) (Window _ _ _ _ _ _ _ _ _ _ _ _) (String _) (Window _ _ _ _ _ _ _ _ _ _ _ _) (Number _) (Window _ _ _ _ _ _ _ _ _ _ _ _) (Bool _) ... | 118 | , marshal = \w (JSON.Array vs) -> do | ^^^^^^^^^^^^^^^^^^^^^^^^... src/Foreign/JavaScript/Marshal.hs:195:1: warning: [-Wunused-top-binds] Defined but not used: ‘testFFI’ | 195 | testFFI = ffi "$(%1).prop('checked',%2)" | ^^^^^^^ src/Foreign/JavaScript/Marshal.hs:208:16: warning: [-Wincomplete-uni-patterns] Pattern match(es) are non-exhaustive In a lambda abstraction: Patterns of type ‘Window’, ‘[Value]’ not matched: (Window _ _ _ _ _ _ _ _ _ _ _ _) [] | 208 | handle f = \w (a:as) -> do | ^^^^^^^^^^^^^^^... [ 9 of 29] Compiling Foreign.JavaScript ( src/Foreign/JavaScript.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Foreign/JavaScript.dyn_o ) src/Foreign/JavaScript.hs:32:1: warning: [-Wunused-imports] The import of ‘Control.Concurrent.STM’ is redundant except perhaps to import instances from ‘Control.Concurrent.STM’ To import instances alone, use: import Control.Concurrent.STM() | 32 | import Control.Concurrent.STM as STM | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript.hs:33:1: warning: [-Wunused-imports] The import of ‘Control.Monad’ is redundant except perhaps to import instances from ‘Control.Monad’ To import instances alone, use: import Control.Monad() | 33 | import Control.Monad (unless) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript.hs:34:1: warning: [-Wunused-imports] The qualified import of ‘Data.Aeson’ is redundant except perhaps to import instances from ‘Data.Aeson’ To import instances alone, use: import Data.Aeson() | 34 | import qualified Data.Aeson as JSON | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Foreign/JavaScript.hs:50:14: warning: [-Wname-shadowing] This binding for ‘init’ shadows the existing binding imported from ‘Prelude’ at src/Foreign/JavaScript.hs:2:8-25 (and originally defined in ‘GHC.List’) | 50 | serve config init = httpComm config $ eventLoop $ \w -> do | ^^^^ [10 of 29] Compiling Paths_threepenny_gui ( /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/autogen/Paths_threepenny_gui.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Paths_threepenny_gui.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Paths_threepenny_gui.dyn_o ) [11 of 29] Compiling Reactive.Threepenny.Memo ( src/Reactive/Threepenny/Memo.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/Memo.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/Memo.dyn_o ) src/Reactive/Threepenny/Memo.hs:6:1: warning: [-Wunused-imports] The import of ‘Control.Monad’ is redundant except perhaps to import instances from ‘Control.Monad’ To import instances alone, use: import Control.Monad() | 6 | import Control.Monad | ^^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny/Memo.hs:7:1: warning: [-Wunused-imports] The import of ‘Data.Functor’ is redundant except perhaps to import instances from ‘Data.Functor’ To import instances alone, use: import Data.Functor() | 7 | import Data.Functor | ^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny/Memo.hs:20:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fromPure :: a -> Memo a | 20 | fromPure = Const | ^^^^^^^^ [12 of 29] Compiling Reactive.Threepenny.Types ( src/Reactive/Threepenny/Types.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/Types.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/Types.dyn_o ) [13 of 29] Compiling Reactive.Threepenny.Monads ( src/Reactive/Threepenny/Monads.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/Monads.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/Monads.dyn_o ) [14 of 29] Compiling Reactive.Threepenny.PulseLatch ( src/Reactive/Threepenny/PulseLatch.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/PulseLatch.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny/PulseLatch.dyn_o ) src/Reactive/Threepenny/PulseLatch.hs:12:1: warning: [-Wunused-imports] The import of ‘Control.Applicative’ is redundant except perhaps to import instances from ‘Control.Applicative’ To import instances alone, use: import Control.Applicative() | 12 | import Control.Applicative | ^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny/PulseLatch.hs:18:1: warning: [-Wunused-imports] The import of ‘Data.Monoid’ is redundant except perhaps to import instances from ‘Data.Monoid’ To import instances alone, use: import Data.Monoid() | 18 | import Data.Monoid (Endo(..)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny/PulseLatch.hs:20:1: warning: [-Wunused-imports] The import of ‘Data.Hashable’ is redundant except perhaps to import instances from ‘Data.Hashable’ To import instances alone, use: import Data.Hashable() | 20 | import Data.Hashable | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny/PulseLatch.hs:28:1: warning: [-Wunused-top-binds] Defined but not used: type constructor or class ‘Map’ | 28 | type Map = Map.HashMap | ^^^^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny/PulseLatch.hs:120:5: warning: [-Wname-shadowing] This binding for ‘traverse’ shadows the existing binding imported from ‘Prelude’ at src/Reactive/Threepenny/PulseLatch.hs:2:8-37 (and originally defined in ‘Data.Traversable’) | 120 | traverse Nothing = return Nothing | ^^^^^^^^ src/Reactive/Threepenny/PulseLatch.hs:188:1: warning: [-Wunused-top-binds] Defined but not used: ‘test’ | 188 | test = do | ^^^^ src/Reactive/Threepenny/PulseLatch.hs:198:1: warning: [-Wunused-top-binds] Defined but not used: ‘test_recursion1’ | 198 | test_recursion1 = mdo | ^^^^^^^^^^^^^^^ [15 of 29] Compiling Reactive.Threepenny ( src/Reactive/Threepenny.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Reactive/Threepenny.dyn_o ) src/Reactive/Threepenny.hs:58:1: warning: [-Wunused-top-binds] Defined but not used: type constructor or class ‘Map’ | 58 | type Map = Map.Map | ^^^^^^^^^^^^^^^^^^^^ src/Reactive/Threepenny.hs:82:44: warning: [-Wunused-top-binds] Defined but not used: ‘changes’ | 82 | data Behavior a = B { latch :: Latch a, changes :: Event () } | ^^^^^^^ src/Reactive/Threepenny.hs:107:16: warning: [-Wname-shadowing] This binding for ‘init’ shadows the existing binding imported from ‘Prelude’ at src/Reactive/Threepenny.hs:2:8-26 (and originally defined in ‘GHC.List’) | 107 | newEventsNamed init = do | ^^^^ src/Reactive/Threepenny.hs:168:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: filterJust :: Event (Maybe a) -> Event a | 168 | filterJust e = E $ liftMemo1 Prim.filterJustP (unE e) | ^^^^^^^^^^ src/Reactive/Threepenny.hs:311:22: warning: [-Wunused-matches] Defined but not used: ‘b’ | 311 | fromLeft (Right b) = Nothing | ^ src/Reactive/Threepenny.hs:312:22: warning: [-Wunused-matches] Defined but not used: ‘a’ | 312 | fromRight (Left a) = Nothing | ^ src/Reactive/Threepenny.hs:371:22: warning: [-Wname-shadowing] This binding for ‘x’ shadows the existing binding bound at src/Reactive/Threepenny.hs:369:5 | 371 | e = unionWith (\(x,_) (_,y) -> (x,y)) x y | ^ src/Reactive/Threepenny.hs:371:30: warning: [-Wname-shadowing] This binding for ‘y’ shadows the existing binding bound at src/Reactive/Threepenny.hs:370:5 | 371 | e = unionWith (\(x,_) (_,y) -> (x,y)) x y | ^ src/Reactive/Threepenny.hs:378:1: warning: [-Wunused-top-binds] Defined but not used: ‘test’ | 378 | test = do | ^^^^ src/Reactive/Threepenny.hs:386:1: warning: [-Wunused-top-binds] Defined but not used: ‘test_recursion1’ | 386 | test_recursion1 = mdo | ^^^^^^^^^^^^^^^ [16 of 29] Compiling Graphics.UI.Threepenny.Internal ( src/Graphics/UI/Threepenny/Internal.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Internal.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Internal.dyn_o ) src/Graphics/UI/Threepenny/Internal.hs:24:1: warning: [-Wunused-imports] The import of ‘Control.Applicative’ is redundant except perhaps to import instances from ‘Control.Applicative’ To import instances alone, use: import Control.Applicative() | 24 | import Control.Applicative (Applicative(..)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:60:17: warning: [-Wname-shadowing] This binding for ‘init’ shadows the existing binding imported from ‘Prelude’ at src/Graphics/UI/Threepenny/Internal.hs:2:8-38 (and originally defined in ‘GHC.List’) | 60 | startGUI config init = JS.serve config $ \w -> do | ^^^^ src/Graphics/UI/Threepenny/Internal.hs:62:6: warning: [-Wname-shadowing] This binding for ‘eDisconnect’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Internal.hs:48:7 | 62 | (eDisconnect, handleDisconnect) <- RB.newEvent | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:66:5: warning: [-Wname-shadowing] This binding for ‘wEvents’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Internal.hs:49:7 | 66 | wEvents <- Foreign.newVendor | ^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:67:5: warning: [-Wname-shadowing] This binding for ‘wChildren’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Internal.hs:51:7 | 67 | wChildren <- Foreign.newVendor | ^^^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:122:16: warning: [-Wunused-matches] Defined but not used: ‘window’ | 122 | getChildren el window@Window{ wChildren = wChildren } = | ^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:122:43: warning: [-Wname-shadowing] This binding for ‘wChildren’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Internal.hs:51:7 | 122 | getChildren el window@Window{ wChildren = wChildren } = | ^^^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:156:46: warning: [-Wname-shadowing] This binding for ‘wEvents’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Internal.hs:49:7 | 156 | addEvents el Window{ jsWindow = w, wEvents = wEvents } = do | ^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:176:39: warning: [-Wname-shadowing] This binding for ‘wEvents’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Internal.hs:49:7 | 176 | getEvents el window@Window{ wEvents = wEvents } = do | ^^^^^^^ src/Graphics/UI/Threepenny/Internal.hs:190:24: warning: [-Wincomplete-uni-patterns] Pattern match(es) are non-exhaustive In a pattern binding: Patterns of type ‘JSON.Result a’ not matched: JSON.Error _ | 190 | unsafeFromJSON x = let JSON.Success y = JSON.fromJSON x in y | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [17 of 29] Compiling Graphics.UI.Threepenny.Core ( src/Graphics/UI/Threepenny/Core.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Core.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Core.dyn_o ) src/Graphics/UI/Threepenny/Core.hs:121:5: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:317:1 | 121 | set xs x = do | ^^^ src/Graphics/UI/Threepenny/Core.hs:145:5: warning: [-Wname-shadowing] This binding for ‘get’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:335:1 | 145 | get el = callFunction $ ffi "$(%1).val()" el | ^^^ src/Graphics/UI/Threepenny/Core.hs:146:5: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:317:1 | 146 | set v el = runFunction $ ffi "$(%1).val(%2)" el v | ^^^ src/Graphics/UI/Threepenny/Core.hs:178:18: warning: [-Wname-shadowing] This binding for ‘id’ shadows the existing binding imported from ‘Prelude’ at src/Graphics/UI/Threepenny/Core.hs:2:8-34 (and originally defined in ‘GHC.Base’) | 178 | getElementById _ id = | ^^ src/Graphics/UI/Threepenny/Core.hs:179:17: warning: [-Wunused-matches] Defined but not used: ‘e’ | 179 | E.handle (\(e :: JS.JavaScriptException) -> return Nothing) $ | ^ src/Graphics/UI/Threepenny/Core.hs:187:24: warning: [-Wunused-matches] Defined but not used: ‘window’ | 187 | getElementsByClassName window s = | ^^^^^^ src/Graphics/UI/Threepenny/Core.hs:225:13: warning: [-Wname-shadowing] This binding for ‘row’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:195:1 | 225 | row <- forM row0 $ \entry -> | ^^^ src/Graphics/UI/Threepenny/Core.hs:309:19: warning: [-Wname-shadowing] This binding for ‘attr’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:132:1 | 309 | bimapAttr from to attr = attr | ^^^^ src/Graphics/UI/Threepenny/Core.hs:317:5: warning: [-Wname-shadowing] This binding for ‘attr’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:132:1 | 317 | set attr i mx = do { x <- mx; set' attr i x; return x; } | ^^^^ src/Graphics/UI/Threepenny/Core.hs:324:6: warning: [-Wname-shadowing] This binding for ‘attr’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:132:1 | 324 | sink attr bi mx = do | ^^^^ src/Graphics/UI/Threepenny/Core.hs:330:34: warning: [-Wname-shadowing] This binding for ‘i’ shadows the existing binding bound at src/Graphics/UI/Threepenny/Core.hs:328:9 | 330 | Reactive.onChange bi $ \i -> runUI window $ set' attr i x | ^ src/Graphics/UI/Threepenny/Core.hs:335:5: warning: [-Wname-shadowing] This binding for ‘attr’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:132:1 | 335 | get attr = get' attr | ^^^^ src/Graphics/UI/Threepenny/Core.hs:342:17: warning: [-Wname-shadowing] This binding for ‘get’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:335:1 | 342 | mkReadWriteAttr get set = ReadWriteAttr { get' = get, set' = set } | ^^^ src/Graphics/UI/Threepenny/Core.hs:342:21: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:317:1 | 342 | mkReadWriteAttr get set = ReadWriteAttr { get' = get, set' = set } | ^^^ src/Graphics/UI/Threepenny/Core.hs:346:12: warning: [-Wname-shadowing] This binding for ‘get’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:335:1 | 346 | mkReadAttr get = mkReadWriteAttr get (\_ _ -> return ()) | ^^^ src/Graphics/UI/Threepenny/Core.hs:350:13: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:317:1 | 350 | mkWriteAttr set = mkReadWriteAttr (\_ -> return ()) set | ^^^ src/Graphics/UI/Threepenny/Core.hs:356:5: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:317:1 | 356 | set v el = runFunction $ ffi "$(%1).prop(%2,%3)" el name (to v) | ^^^ src/Graphics/UI/Threepenny/Core.hs:357:5: warning: [-Wname-shadowing] This binding for ‘get’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:335:1 | 357 | get el = fmap from $ callFunction $ ffi "$(%1).prop(%2)" el name | ^^^ src/Graphics/UI/Threepenny/Core.hs:363:5: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:317:1 | 363 | set v el = runFunction $ ffi ("%1." ++ name ++ " = %2") el v | ^^^ src/Graphics/UI/Threepenny/Core.hs:364:5: warning: [-Wname-shadowing] This binding for ‘get’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Core.hs:335:1 | 364 | get el = callFunction $ ffi ("%1." ++ name) el | ^^^ [18 of 29] Compiling Graphics.UI.Threepenny.Timer ( src/Graphics/UI/Threepenny/Timer.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Timer.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Timer.dyn_o ) src/Graphics/UI/Threepenny/Timer.hs:16:38: warning: [-Wunused-imports] The import of ‘void’ from module ‘Control.Monad’ is redundant | 16 | import Control.Monad (when, forever, void) | ^^^^ src/Graphics/UI/Threepenny/Timer.hs:37:5: warning: [-Wunused-do-bind] A do-notation statement discarded a result of type ‘ThreadId’ Suppress this warning by saying ‘_ <- forkIO $ forever $ do atomically $ do b <- readTVar tvRunning .... wait <- atomically $ readTVar tvInterval fire () ....’ | 37 | forkIO $ forever $ do | ^^^^^^^^^^^^^^^^^^^^^... [19 of 29] Compiling Graphics.UI.Threepenny.SVG.Elements ( src/Graphics/UI/Threepenny/SVG/Elements.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/SVG/Elements.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/SVG/Elements.dyn_o ) src/Graphics/UI/Threepenny/SVG/Elements.hs:42:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tag :: GHC.Base.String -> Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 42 | tag = mkElementNamespace (Just "http://www.w3.org/2000/svg") | ^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:43:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: itag :: GHC.Base.String -> Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 43 | itag = tag | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:45:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: a :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 45 | a = tag "a" | ^ src/Graphics/UI/Threepenny/SVG/Elements.hs:46:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: altGlyph :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 46 | altGlyph = tag "altGlyph" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:47:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: altGlyphDef :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 47 | altGlyphDef = itag "altGlyphDef" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:48:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: altGlyphItem :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 48 | altGlyphItem = itag "altGlyphItem" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:49:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: animate :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 49 | animate = tag "animate" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:50:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: animateColor :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 50 | animateColor = tag "animateColor" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:51:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: animateMotion :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 51 | animateMotion = tag "animateMotion" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:52:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: animateTransform :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 52 | animateTransform = itag "animateTransform" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:53:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: circle :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 53 | circle = itag "circle" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:54:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: clipPath :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 54 | clipPath = tag "clipPath" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:55:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: colorProfile :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 55 | colorProfile = itag "colorProfile" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:56:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cursor :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 56 | cursor = itag "cursor" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:57:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: defs :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 57 | defs = tag "defs" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:58:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: desc :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 58 | desc = itag "desc" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:59:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ellipse :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 59 | ellipse = tag "ellipse" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:60:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feBlend :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 60 | feBlend = tag "feBlend" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:61:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feColorMatrix :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 61 | feColorMatrix = tag "feColorMatrix" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:62:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feComponentTransfer :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 62 | feComponentTransfer = tag "feComponentTransfer" | ^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:63:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feComposite :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 63 | feComposite = tag "feComposite" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:64:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feConvolveMatrix :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 64 | feConvolveMatrix = tag "feConvolveMatrix" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:65:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feDiffuseLighting :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 65 | feDiffuseLighting = tag "feDiffuseLighting" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:66:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feDisplacementMap :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 66 | feDisplacementMap = tag "feDisplacementMap" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:67:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feDistantLight :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 67 | feDistantLight = itag "feDistantLight" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:68:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feFlood :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 68 | feFlood = tag "feFlood" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:69:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feFuncA :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 69 | feFuncA = itag "feFuncA" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:70:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feFuncB :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 70 | feFuncB = itag "feFuncB" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:71:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feFuncG :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 71 | feFuncG = itag "feFuncG" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:72:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feFuncR :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 72 | feFuncR = itag "feFuncR" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:73:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feGaussianBlur :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 73 | feGaussianBlur = tag "feGaussianBlur" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:74:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feImage :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 74 | feImage = tag "feImage" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:75:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feMerge :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 75 | feMerge = tag "feMerge" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:76:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feMergeNode :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 76 | feMergeNode = itag "feMergeNode" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:77:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feMorphology :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 77 | feMorphology = tag "feMorphology" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:78:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feOffset :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 78 | feOffset = tag "feOffset" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:79:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fePointLight :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 79 | fePointLight = itag "fePointLight" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:80:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feSpecularLighting :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 80 | feSpecularLighting = tag "feSpecularLighting" | ^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:81:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feSpotLight :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 81 | feSpotLight = itag "feSpotLight" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:82:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feTile :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 82 | feTile = tag "feTile" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:83:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: feTurbulence :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 83 | feTurbulence = tag "feTurbulence" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:84:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: filter :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 84 | filter = tag "filter" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:85:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 85 | font = tag "font" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:86:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_face :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 86 | font_face = itag "font-face" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:87:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_face_format :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 87 | font_face_format = itag "font-face-format" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:88:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_face_name :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 88 | font_face_name = itag "font-face-name" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:89:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_face_srv :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 89 | font_face_srv = itag "font-face-src" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:90:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_face_uri :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 90 | font_face_uri = itag "font-face-uri" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:91:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: foreignObject :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 91 | foreignObject = tag "foreignObject" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:92:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: g :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 92 | g = tag "g" | ^ src/Graphics/UI/Threepenny/SVG/Elements.hs:93:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: glyph :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 93 | glyph = tag "glyph" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:94:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: glyphRef :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 94 | glyphRef = tag "glyphRef" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:95:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: hkern :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 95 | hkern = itag "hkern" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:96:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: image :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 96 | image = tag "image" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:97:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: line :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 97 | line = tag "line" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:98:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: linearGradient :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 98 | linearGradient = tag "linearGradient" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:99:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: marker :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 99 | marker = tag "marker" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:100:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: mask :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 100 | mask = tag "mask" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:101:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: metadata :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 101 | metadata = itag "metadata" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:102:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: missing_glyph :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 102 | missing_glyph = tag "missing-glyph" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:103:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: mpath :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 103 | mpath = itag "mpath" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:104:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: path :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 104 | path = itag "path" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:105:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pattern :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 105 | pattern = tag "pattern" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:106:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: polygon :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 106 | polygon = tag "polygon" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:107:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: polyline :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 107 | polyline = tag "polyline" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:108:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: radialGradient :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 108 | radialGradient = tag "radialGradient" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:109:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rect :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 109 | rect = tag "rect" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:110:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: script :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 110 | script = itag "script" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:111:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: set :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 111 | set = itag "set" | ^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:112:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stop :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 112 | stop = tag "stop" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:113:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: style :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 113 | style = itag "style" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:114:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: svg :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 114 | svg = tag "svg" | ^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:115:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: switch :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 115 | switch = tag "switch" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:116:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: symbol :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 116 | symbol = tag "symbol" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:117:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: text :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 117 | text = tag "text" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:118:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: textPath :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 118 | textPath = tag "textPath" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:119:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: title :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 119 | title = itag "title" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:120:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tref :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 120 | tref = tag "tref" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:121:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tspan :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 121 | tspan = tag "tspan" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:122:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: use :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 122 | use = tag "use" | ^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:123:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: view :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 123 | view = itag "view" | ^^^^ src/Graphics/UI/Threepenny/SVG/Elements.hs:124:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: vkern :: Graphics.UI.Threepenny.Internal.UI Graphics.UI.Threepenny.Internal.Element | 124 | vkern = itag "vkern" | ^^^^^ [20 of 29] Compiling Graphics.UI.Threepenny.SVG.Attributes ( src/Graphics/UI/Threepenny/SVG/Attributes.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/SVG/Attributes.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/SVG/Attributes.dyn_o ) src/Graphics/UI/Threepenny/SVG/Attributes.hs:97:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: accent_height :: WriteAttr Element Float | 97 | accent_height = fltAttr "accent-height" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:98:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: accumulate :: WriteAttr Element String | 98 | accumulate = strAttr "accumulate" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:99:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: additive :: WriteAttr Element String | 99 | additive = strAttr "additive" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:100:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: alignment_baseline :: WriteAttr Element String | 100 | alignment_baseline = strAttr "alignment-baseline" | ^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:101:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: alphabetic :: WriteAttr Element Float | 101 | alphabetic = fltAttr "alphabetic" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:102:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: amplitude :: WriteAttr Element Float | 102 | amplitude = fltAttr "amplitude" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:103:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: arabic_form :: WriteAttr Element String | 103 | arabic_form = strAttr "arabic-form" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:104:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ascent :: WriteAttr Element Float | 104 | ascent = fltAttr "ascent" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:105:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: attributeName :: WriteAttr Element String | 105 | attributeName = strAttr "attributeName" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:106:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: attributeType :: WriteAttr Element String | 106 | attributeType = strAttr "attributeType" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:107:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: azimuth :: WriteAttr Element Float | 107 | azimuth = fltAttr "azimuth" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:108:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: baseFrequency :: WriteAttr Element String | 108 | baseFrequency = strAttr "baseFrequency" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:109:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: baseProfile :: WriteAttr Element String | 109 | baseProfile = strAttr "baseProfile" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:110:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: baseline_shift :: WriteAttr Element String | 110 | baseline_shift = strAttr "baseline-shift" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:111:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: bbox :: WriteAttr Element String | 111 | bbox = strAttr "bbox" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:112:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: begin :: WriteAttr Element String | 112 | begin = strAttr "begin" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:113:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: bias :: WriteAttr Element Float | 113 | bias = fltAttr "bias" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:114:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: by :: WriteAttr Element Float | 114 | by = fltAttr "by" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:115:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: calcMode :: WriteAttr Element String | 115 | calcMode = strAttr "calcMode" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:116:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cap_height :: WriteAttr Element Float | 116 | cap_height = fltAttr "cap-height" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:117:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: class_ :: WriteAttr Element String | 117 | class_ = strAttr "class" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:118:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: clip :: WriteAttr Element String | 118 | clip = strAttr "clip" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:119:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: clip_path :: WriteAttr Element String | 119 | clip_path = strAttr "clip-path" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:120:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: clip_rule :: WriteAttr Element String | 120 | clip_rule = strAttr "clip-rule" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:121:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: clipPathUnits :: WriteAttr Element String | 121 | clipPathUnits = strAttr "clipPathUnits" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:122:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: color :: WriteAttr Element String | 122 | color = strAttr "color" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:123:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: color_interpolation :: WriteAttr Element String | 123 | color_interpolation = strAttr "color-interpolation" | ^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:124:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: color_interpolation_filters :: WriteAttr Element String | 124 | color_interpolation_filters = strAttr "color-interpolation-filters" | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:125:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: color_profile :: WriteAttr Element String | 125 | color_profile = strAttr "color-profile" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:126:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: color_rendering :: WriteAttr Element String | 126 | color_rendering = strAttr "color-rendering" | ^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:127:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: contentScriptType :: WriteAttr Element String | 127 | contentScriptType = strAttr "contentScriptType" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:128:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: contentStyleType :: WriteAttr Element String | 128 | contentStyleType = strAttr "contentStyleType" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:129:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cursor :: WriteAttr Element String | 129 | cursor = strAttr "cursor" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:130:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cx :: WriteAttr Element String | 130 | cx = strAttr "cx" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:131:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cy :: WriteAttr Element String | 131 | cy = strAttr "cy" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:132:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: d :: WriteAttr Element String | 132 | d = strAttr "d" | ^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:133:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: descent :: WriteAttr Element Float | 133 | descent = fltAttr "descent" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:134:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: diffuseConstant :: WriteAttr Element Float | 134 | diffuseConstant = fltAttr "diffuseConstant" | ^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:135:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: direction :: WriteAttr Element String | 135 | direction = strAttr "direction" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:136:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: display :: WriteAttr Element String | 136 | display = strAttr "display" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:137:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: divisor :: WriteAttr Element Float | 137 | divisor = fltAttr "divisor" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:138:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: dominant_baseline :: WriteAttr Element String | 138 | dominant_baseline = strAttr "dominant-baseline" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:139:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: dur :: WriteAttr Element String | 139 | dur = strAttr "dur" | ^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:140:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: dx :: WriteAttr Element String | 140 | dx = strAttr "dx" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:141:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: dy :: WriteAttr Element String | 141 | dy = strAttr "dy" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:142:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: edgeMode :: WriteAttr Element String | 142 | edgeMode = strAttr "edgeMode" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:143:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: elevation :: WriteAttr Element Float | 143 | elevation = fltAttr "elevation" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:144:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: enable_background :: WriteAttr Element String | 144 | enable_background = strAttr "enable-background" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:145:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: end :: WriteAttr Element String | 145 | end = strAttr "end" | ^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:146:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: exponent :: WriteAttr Element Float | 146 | exponent = fltAttr "exponent" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:147:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: externalResourcesRequired :: WriteAttr Element String | 147 | externalResourcesRequired = strAttr "externalResourcesRequired" | ^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:148:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fill :: WriteAttr Element String | 148 | fill = strAttr "fill" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:149:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fill_opacity :: WriteAttr Element String | 149 | fill_opacity = strAttr "fill-opacity" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:150:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fill_rule :: WriteAttr Element String | 150 | fill_rule = strAttr "fill-rule" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:151:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: filter :: WriteAttr Element String | 151 | filter = strAttr "filter" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:152:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: filterRes :: WriteAttr Element String | 152 | filterRes = strAttr "filterRes" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:153:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: filterUnits :: WriteAttr Element String | 153 | filterUnits = strAttr "filterUnits" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:154:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: flood_color :: WriteAttr Element String | 154 | flood_color = strAttr "flood-color" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:155:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: flood_opacity :: WriteAttr Element String | 155 | flood_opacity = strAttr "flood-opacity" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:156:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_family :: WriteAttr Element String | 156 | font_family = strAttr "font-family" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:157:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_size :: WriteAttr Element String | 157 | font_size = strAttr "font-size" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:158:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_size_adjust :: WriteAttr Element String | 158 | font_size_adjust = strAttr "font-size-adjust" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:159:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_stretch :: WriteAttr Element String | 159 | font_stretch = strAttr "font-stretch" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:160:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_style :: WriteAttr Element String | 160 | font_style = strAttr "font-style" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:161:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_variant :: WriteAttr Element String | 161 | font_variant = strAttr "font-variant" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:162:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font_weight :: WriteAttr Element String | 162 | font_weight = strAttr "font-weight" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:163:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: format :: WriteAttr Element String | 163 | format = strAttr "format" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:164:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: from :: WriteAttr Element Float | 164 | from = fltAttr "from" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:165:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fx :: WriteAttr Element String | 165 | fx = strAttr "fx" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:166:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fy :: WriteAttr Element String | 166 | fy = strAttr "fy" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:167:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: g1 :: WriteAttr Element String | 167 | g1 = strAttr "g1" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:168:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: g2 :: WriteAttr Element String | 168 | g2 = strAttr "g2" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:169:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: glyph_name :: WriteAttr Element String | 169 | glyph_name = strAttr "glyph-name" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:170:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: glyph_orientation_horizontal :: WriteAttr Element String | 170 | glyph_orientation_horizontal = strAttr "glyph-orientation-horizontal" | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:171:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: glyph_orientation_vertical :: WriteAttr Element String | 171 | glyph_orientation_vertical = strAttr "glyph-orientation-vertical" | ^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:172:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: glyphRef :: WriteAttr Element String | 172 | glyphRef = strAttr "glyphRef" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:173:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: gradientTransform :: WriteAttr Element String | 173 | gradientTransform = strAttr "gradientTransform" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:174:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: gradientUnits :: WriteAttr Element String | 174 | gradientUnits = strAttr "gradientUnits" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:175:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: hanging :: WriteAttr Element Float | 175 | hanging = fltAttr "hanging" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:176:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: height :: WriteAttr Element String | 176 | height = strAttr "height" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:177:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: horiz_adv_x :: WriteAttr Element Float | 177 | horiz_adv_x = fltAttr "horiz-adv-x" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:178:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: horiz_origin_x :: WriteAttr Element Float | 178 | horiz_origin_x = fltAttr "horiz-origin-x" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:179:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: horiz_origin_y :: WriteAttr Element Float | 179 | horiz_origin_y = fltAttr "horiz-origin-y" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:180:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: id :: WriteAttr Element String | 180 | id = strAttr "id" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:181:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ideographic :: WriteAttr Element Float | 181 | ideographic = fltAttr "ideographic" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:182:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: image_rendering :: WriteAttr Element String | 182 | image_rendering = strAttr "image-rendering" | ^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:183:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: in_ :: WriteAttr Element String | 183 | in_ = strAttr "in" | ^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:184:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: in2 :: WriteAttr Element String | 184 | in2 = strAttr "in2" | ^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:185:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: intercept :: WriteAttr Element Float | 185 | intercept = fltAttr "intercept" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:186:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: k :: WriteAttr Element Float | 186 | k = fltAttr "k" | ^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:187:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: k1 :: WriteAttr Element Float | 187 | k1 = fltAttr "k1" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:188:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: k2 :: WriteAttr Element Float | 188 | k2 = fltAttr "k2" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:189:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: k3 :: WriteAttr Element Float | 189 | k3 = fltAttr "k3" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:190:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: k4 :: WriteAttr Element Float | 190 | k4 = fltAttr "k4" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:191:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: kernelMatrix :: WriteAttr Element String | 191 | kernelMatrix = strAttr "kernelMatrix" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:192:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: kernelUnitLength :: WriteAttr Element String | 192 | kernelUnitLength = strAttr "kernelUnitLength" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:193:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: kerning :: WriteAttr Element String | 193 | kerning = strAttr "kerning" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:194:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: keyPoints :: WriteAttr Element String | 194 | keyPoints = strAttr "keyPoints" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:195:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: keySplines :: WriteAttr Element String | 195 | keySplines = strAttr "keySplines" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:196:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: keyTimes :: WriteAttr Element String | 196 | keyTimes = strAttr "keyTimes" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:197:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: lang :: WriteAttr Element String | 197 | lang = strAttr "lang" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:198:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: lengthAdjust :: WriteAttr Element String | 198 | lengthAdjust = strAttr "lengthAdjust" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:199:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: letter_spacing :: WriteAttr Element String | 199 | letter_spacing = strAttr "letter-spacing" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:200:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: lighting_color :: WriteAttr Element String | 200 | lighting_color = strAttr "lighting-color" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:201:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: limitingConeAngle :: WriteAttr Element Float | 201 | limitingConeAngle = fltAttr "limitingConeAngle" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:202:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: local :: WriteAttr Element String | 202 | local = strAttr "local" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:203:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: marker_end :: WriteAttr Element String | 203 | marker_end = strAttr "marker-end" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:204:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: marker_mid :: WriteAttr Element String | 204 | marker_mid = strAttr "marker-mid" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:205:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: marker_start :: WriteAttr Element String | 205 | marker_start = strAttr "marker-start" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:206:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: markerHeight :: WriteAttr Element String | 206 | markerHeight = strAttr "markerHeight" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:207:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: markerUnits :: WriteAttr Element String | 207 | markerUnits = strAttr "markerUnits" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:208:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: markerWidth :: WriteAttr Element String | 208 | markerWidth = strAttr "markerWidth" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:209:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: mask :: WriteAttr Element String | 209 | mask = strAttr "mask" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:210:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: maskContentUnits :: WriteAttr Element String | 210 | maskContentUnits = strAttr "maskContentUnits" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:211:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: maskUnits :: WriteAttr Element String | 211 | maskUnits = strAttr "maskUnits" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:212:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: mathematical :: WriteAttr Element Float | 212 | mathematical = fltAttr "mathematical" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:213:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: max :: WriteAttr Element String | 213 | max = strAttr "max" | ^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:214:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: media :: WriteAttr Element String | 214 | media = strAttr "media" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:215:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: method :: WriteAttr Element String | 215 | method = strAttr "method" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:216:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: min :: WriteAttr Element String | 216 | min = strAttr "min" | ^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:217:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: mode :: WriteAttr Element String | 217 | mode = strAttr "mode" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:218:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: name :: WriteAttr Element String | 218 | name = strAttr "name" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:219:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: numOctaves :: WriteAttr Element Int | 219 | numOctaves = intAttr "numOctaves" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:220:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: offset :: WriteAttr Element Float | 220 | offset = fltAttr "offset" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:221:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onabort :: WriteAttr Element String | 221 | onabort = strAttr "onabort" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:222:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onactivate :: WriteAttr Element String | 222 | onactivate = strAttr "onactivate" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:223:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onbegin :: WriteAttr Element String | 223 | onbegin = strAttr "onbegin" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:224:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onclick :: WriteAttr Element String | 224 | onclick = strAttr "onclick" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:225:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onend :: WriteAttr Element String | 225 | onend = strAttr "onend" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:226:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onerror :: WriteAttr Element String | 226 | onerror = strAttr "onerror" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:227:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onfocusin :: WriteAttr Element String | 227 | onfocusin = strAttr "onfocusin" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:228:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onfocusout :: WriteAttr Element String | 228 | onfocusout = strAttr "onfocusout" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:229:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onload :: WriteAttr Element String | 229 | onload = strAttr "onload" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:230:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onmousedown :: WriteAttr Element String | 230 | onmousedown = strAttr "onmousedown" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:231:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onmousemove :: WriteAttr Element String | 231 | onmousemove = strAttr "onmousemove" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:232:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onmouseout :: WriteAttr Element String | 232 | onmouseout = strAttr "onmouseout" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:233:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onmouseover :: WriteAttr Element String | 233 | onmouseover = strAttr "onmouseover" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:234:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onmouseup :: WriteAttr Element String | 234 | onmouseup = strAttr "onmouseup" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:235:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onrepeat :: WriteAttr Element String | 235 | onrepeat = strAttr "onrepeat" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:236:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onresize :: WriteAttr Element String | 236 | onresize = strAttr "onresize" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:237:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onscroll :: WriteAttr Element String | 237 | onscroll = strAttr "onscroll" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:238:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onunload :: WriteAttr Element String | 238 | onunload = strAttr "onunload" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:239:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: onzoom :: WriteAttr Element String | 239 | onzoom = strAttr "onzoom" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:240:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: opacity :: WriteAttr Element String | 240 | opacity = strAttr "opacity" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:241:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: operator :: WriteAttr Element String | 241 | operator = strAttr "operator" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:242:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: order :: WriteAttr Element String | 242 | order = strAttr "order" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:243:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: orient :: WriteAttr Element String | 243 | orient = strAttr "orient" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:244:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: orientation :: WriteAttr Element String | 244 | orientation = strAttr "orientation" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:245:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: origin :: WriteAttr Element String | 245 | origin = strAttr "origin" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:246:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: overflow :: WriteAttr Element String | 246 | overflow = strAttr "overflow" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:247:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: overline_position :: WriteAttr Element Float | 247 | overline_position = fltAttr "overline-position" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:248:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: overline_thickness :: WriteAttr Element Float | 248 | overline_thickness = fltAttr "overline-thickness" | ^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:249:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: panose_1 :: WriteAttr Element Int | 249 | panose_1 = intAttr "panose-1" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:250:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: path :: String | 250 | path = "path" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:252:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pathLength :: WriteAttr Element Float | 252 | pathLength = fltAttr "pathLength" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:253:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: patternContentUnits :: WriteAttr Element String | 253 | patternContentUnits = strAttr "patternContentUnits" | ^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:254:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: patternTransform :: WriteAttr Element String | 254 | patternTransform = strAttr "patternTransform" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:255:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: patternUnits :: WriteAttr Element String | 255 | patternUnits = strAttr "patternUnits" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:256:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pointer_events :: WriteAttr Element String | 256 | pointer_events = strAttr "pointer-events" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:257:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: points :: WriteAttr Element String | 257 | points = strAttr "points" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:258:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pointsAtX :: WriteAttr Element Float | 258 | pointsAtX = fltAttr "pointsAtX" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:259:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pointsAtY :: WriteAttr Element Float | 259 | pointsAtY = fltAttr "pointsAtY" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:260:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pointsAtZ :: WriteAttr Element Float | 260 | pointsAtZ = fltAttr "pointsAtZ" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:261:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: preserveAlpha :: WriteAttr Element String | 261 | preserveAlpha = strAttr "preserveAlpha" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:262:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: preserveAspectRatio :: WriteAttr Element String | 262 | preserveAspectRatio = strAttr "preserveAspectRatio" | ^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:263:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: primitiveUnits :: WriteAttr Element String | 263 | primitiveUnits = strAttr "primitiveUnits" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:264:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: r :: WriteAttr Element String | 264 | r = strAttr "r" | ^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:265:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: radius :: WriteAttr Element String | 265 | radius = strAttr "radius" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:266:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: refX :: WriteAttr Element String | 266 | refX = strAttr "refX" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:267:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: refY :: WriteAttr Element String | 267 | refY = strAttr "refY" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:268:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: refx :: WriteAttr Element String | 268 | refx = refX | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:269:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: refy :: WriteAttr Element String | 269 | refy = refY | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:271:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rendering_intent :: WriteAttr Element String | 271 | rendering_intent = strAttr "rendering-intent" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:272:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: repeatCount :: WriteAttr Element String | 272 | repeatCount = strAttr "repeatCount" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:273:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: repeatDur :: WriteAttr Element String | 273 | repeatDur = strAttr "repeatDur" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:274:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: requiredExtensions :: WriteAttr Element String | 274 | requiredExtensions = strAttr "requiredExtensions" | ^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:275:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: requiredFeatures :: WriteAttr Element String | 275 | requiredFeatures = strAttr "requiredFeatures" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:276:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: restart :: WriteAttr Element String | 276 | restart = strAttr "restart" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:277:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: result :: WriteAttr Element String | 277 | result = strAttr "result" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:278:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rotate :: WriteAttr Element String | 278 | rotate = strAttr "rotate" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:279:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rx :: WriteAttr Element String | 279 | rx = strAttr "rx" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:280:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ry :: WriteAttr Element String | 280 | ry = strAttr "ry" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:281:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: scale :: WriteAttr Element Float | 281 | scale = fltAttr "scale" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:282:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: seed :: WriteAttr Element Float | 282 | seed = fltAttr "seed" | ^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:283:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: shape_rendering :: WriteAttr Element String | 283 | shape_rendering = strAttr "shape-rendering" | ^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:284:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: slope :: WriteAttr Element Float | 284 | slope = fltAttr "slope" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:285:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: spacing :: WriteAttr Element String | 285 | spacing = strAttr "spacing" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:286:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: specularConstant :: WriteAttr Element Float | 286 | specularConstant = fltAttr "specularConstant" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:287:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: specularExponent :: WriteAttr Element Float | 287 | specularExponent = fltAttr "specularExponent" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:288:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: spreadMethod :: WriteAttr Element String | 288 | spreadMethod = strAttr "spreadMethod" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:289:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: startOffset :: WriteAttr Element String | 289 | startOffset = strAttr "startOffset" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:290:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stdDeviation :: WriteAttr Element String | 290 | stdDeviation = strAttr "stdDeviation" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:291:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stemh :: WriteAttr Element Float | 291 | stemh = fltAttr "stemh" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:292:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stemv :: WriteAttr Element Float | 292 | stemv = fltAttr "stemv" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:293:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stitchTiles :: WriteAttr Element String | 293 | stitchTiles = strAttr "stitchTiles" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:294:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stop_color :: WriteAttr Element String | 294 | stop_color = strAttr "stop-color" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:295:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stop_opacity :: WriteAttr Element String | 295 | stop_opacity = strAttr "stop-opacity" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:296:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: strikethrough_position :: WriteAttr Element Float | 296 | strikethrough_position = fltAttr "strikethrough-position" | ^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:297:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: strikethrough_thickness :: WriteAttr Element Float | 297 | strikethrough_thickness = fltAttr "strikethrough-thickness" | ^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:298:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: string :: WriteAttr Element String | 298 | string = strAttr "string" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:299:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke :: WriteAttr Element String | 299 | stroke = strAttr "stroke" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:300:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_dasharray :: WriteAttr Element String | 300 | stroke_dasharray = strAttr "stroke-dasharray" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:301:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_dashoffset :: WriteAttr Element String | 301 | stroke_dashoffset = strAttr "stroke-dashoffset" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:302:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_linecap :: WriteAttr Element String | 302 | stroke_linecap = strAttr "stroke-linecap" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:303:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_linejoin :: WriteAttr Element String | 303 | stroke_linejoin = strAttr "stroke-linejoin" | ^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:304:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_miterlimit :: WriteAttr Element String | 304 | stroke_miterlimit = strAttr "stroke-miterlimit" | ^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:305:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_opacity :: WriteAttr Element String | 305 | stroke_opacity = strAttr "stroke-opacity" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:306:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: stroke_width :: WriteAttr Element String | 306 | stroke_width = strAttr "stroke-width" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:307:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: style :: WriteAttr Element String | 307 | style = strAttr "style" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:308:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: surfaceScale :: WriteAttr Element Float | 308 | surfaceScale = fltAttr "surfaceScale" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:309:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: systemLanguage :: WriteAttr Element String | 309 | systemLanguage = strAttr "systemLanguage" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:310:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tableValues :: WriteAttr Element String | 310 | tableValues = strAttr "tableValues" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:311:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: target :: WriteAttr Element String | 311 | target = strAttr "target" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:312:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: targetX :: WriteAttr Element Float | 312 | targetX = fltAttr "targetX" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:313:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: targetY :: WriteAttr Element Float | 313 | targetY = fltAttr "targetY" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:314:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: text_anchor :: WriteAttr Element String | 314 | text_anchor = strAttr "text-anchor" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:315:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: text_decoration :: WriteAttr Element String | 315 | text_decoration = strAttr "text-decoration" | ^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:316:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: text_rendering :: WriteAttr Element String | 316 | text_rendering = strAttr "text-rendering" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:317:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: textLength :: WriteAttr Element String | 317 | textLength = strAttr "textLength" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:318:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: title :: WriteAttr Element String | 318 | title = strAttr "title" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:319:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: to :: WriteAttr Element Float | 319 | to = fltAttr "to" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:320:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: transform :: WriteAttr Element String | 320 | transform = strAttr "transform" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:321:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: type_ :: WriteAttr Element String | 321 | type_ = strAttr "type" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:322:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: u1 :: WriteAttr Element String | 322 | u1 = strAttr "u1" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:323:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: u2 :: WriteAttr Element String | 323 | u2 = strAttr "u2" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:324:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: underline_position :: WriteAttr Element Float | 324 | underline_position = fltAttr "underline-position" | ^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:325:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: underline_thickness :: WriteAttr Element Float | 325 | underline_thickness = fltAttr "underline-thickness" | ^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:326:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: unicode :: WriteAttr Element String | 326 | unicode = strAttr "unicode" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:327:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: unicode_bidi :: WriteAttr Element String | 327 | unicode_bidi = strAttr "unicode-bidi" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:328:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: unicode_range :: WriteAttr Element String | 328 | unicode_range = strAttr "unicode-range" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:329:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: units_per_em :: WriteAttr Element Float | 329 | units_per_em = fltAttr "units-per-em" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:330:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: v_alphabetic :: WriteAttr Element Float | 330 | v_alphabetic = fltAttr "v-alphabetic" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:331:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: v_hanging :: WriteAttr Element Float | 331 | v_hanging = fltAttr "v-hanging" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:332:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: v_ideographic :: WriteAttr Element Float | 332 | v_ideographic = fltAttr "v-ideographic" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:333:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: v_mathematical :: WriteAttr Element Float | 333 | v_mathematical = fltAttr "v-mathematical" | ^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:334:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: values :: WriteAttr Element String | 334 | values = strAttr "values" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:335:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: version :: WriteAttr Element Float | 335 | version = fltAttr "version" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:336:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: vert_adv_y :: WriteAttr Element Float | 336 | vert_adv_y = fltAttr "vert-adv-y" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:337:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: vert_origin_x :: WriteAttr Element Float | 337 | vert_origin_x = fltAttr "vert-origin-x" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:338:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: vert_origin_y :: WriteAttr Element Float | 338 | vert_origin_y = fltAttr "vert-origin-y" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:339:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: viewBox :: WriteAttr Element String | 339 | viewBox = strAttr "viewBox" | ^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:340:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: viewTarget :: WriteAttr Element String | 340 | viewTarget = strAttr "viewTarget" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:341:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: visibility :: WriteAttr Element String | 341 | visibility = strAttr "visibility" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:342:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: width :: WriteAttr Element String | 342 | width = strAttr "width" | ^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:343:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: widths :: WriteAttr Element String | 343 | widths = strAttr "widths" | ^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:344:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: word_spacing :: WriteAttr Element String | 344 | word_spacing = strAttr "word-spacing" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:345:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: writing_mode :: WriteAttr Element String | 345 | writing_mode = strAttr "writing-mode" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:346:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: x :: WriteAttr Element String | 346 | x = strAttr "x" | ^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:347:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: x_height :: WriteAttr Element Float | 347 | x_height = fltAttr "x-height" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:348:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: x1 :: WriteAttr Element String | 348 | x1 = strAttr "x1" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:349:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: x2 :: WriteAttr Element String | 349 | x2 = strAttr "x2" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:350:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xChannelSelector :: WriteAttr Element String | 350 | xChannelSelector = strAttr "xChannelSelector" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:351:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_actuate :: WriteAttr Element String | 351 | xlink_actuate = strAttr "xlink:actuate" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:352:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_arcrole :: WriteAttr Element String | 352 | xlink_arcrole = strAttr "xlink:acrole" | ^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:353:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_href :: WriteAttr Element String | 353 | xlink_href = strAttr "xlink:href" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:354:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_role :: WriteAttr Element String | 354 | xlink_role = strAttr "xlink:role" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:355:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_show :: WriteAttr Element String | 355 | xlink_show = strAttr "xlink:show" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:356:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_title :: WriteAttr Element String | 356 | xlink_title = strAttr "xlink:title" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:357:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xlink_type :: WriteAttr Element String | 357 | xlink_type = strAttr "xlink:type" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:358:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xml_base :: WriteAttr Element String | 358 | xml_base = strAttr "xml:base" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:359:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xml_lang :: WriteAttr Element String | 359 | xml_lang = strAttr "xml:lang" | ^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:360:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: xml_space :: WriteAttr Element String | 360 | xml_space = strAttr "xml:space" | ^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:361:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: y :: WriteAttr Element String | 361 | y = strAttr "y" | ^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:362:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: y1 :: WriteAttr Element String | 362 | y1 = strAttr "y1" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:363:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: y2 :: WriteAttr Element String | 363 | y2 = strAttr "y2" | ^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:364:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: yChannelSelector :: WriteAttr Element String | 364 | yChannelSelector = strAttr "yChannelSelector" | ^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:365:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: z :: WriteAttr Element Float | 365 | z = fltAttr "z" | ^ src/Graphics/UI/Threepenny/SVG/Attributes.hs:366:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: zoomAndPan :: WriteAttr Element String | 366 | zoomAndPan = strAttr "zoomAndPan" | ^^^^^^^^^^ [21 of 29] Compiling Graphics.UI.Threepenny.SVG ( src/Graphics/UI/Threepenny/SVG.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/SVG.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/SVG.dyn_o ) [22 of 29] Compiling Graphics.UI.Threepenny.JQuery ( src/Graphics/UI/Threepenny/JQuery.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/JQuery.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/JQuery.dyn_o ) src/Graphics/UI/Threepenny/JQuery.hs:3:1: warning: [-Wunused-imports] The import of ‘Control.Arrow’ is redundant except perhaps to import instances from ‘Control.Arrow’ To import instances alone, use: import Control.Arrow() | 3 | import Control.Arrow | ^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/JQuery.hs:4:1: warning: [-Wunused-imports] The import of ‘Data.String’ is redundant except perhaps to import instances from ‘Data.String’ To import instances alone, use: import Data.String() | 4 | import Data.String | ^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/JQuery.hs:7:1: warning: [-Wunused-imports] The import of ‘Data.Maybe’ is redundant except perhaps to import instances from ‘Data.Maybe’ To import instances alone, use: import Data.Maybe() | 7 | import Data.Maybe | ^^^^^^^^^^^^^^^^^ [23 of 29] Compiling Graphics.UI.Threepenny.Elements ( src/Graphics/UI/Threepenny/Elements.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Elements.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Elements.dyn_o ) src/Graphics/UI/Threepenny/Elements.hs:25:1: warning: [-Wunused-imports] The import of ‘Control.Monad.Trans.Reader’ is redundant except perhaps to import instances from ‘Control.Monad.Trans.Reader’ To import instances alone, use: import Control.Monad.Trans.Reader() | 25 | import Control.Monad.Trans.Reader | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:59:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tag :: String -> UI Element | 59 | tag = mkElement | ^^^ src/Graphics/UI/Threepenny/Elements.hs:60:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: itag :: String -> UI Element | 60 | itag = mkElement | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:62:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: address :: UI Element | 62 | address = tag "address" | ^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:63:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: a :: UI Element | 63 | a = anchor | ^ src/Graphics/UI/Threepenny/Elements.hs:64:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: anchor :: UI Element | 64 | anchor = tag "a" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:65:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: applet :: UI Element | 65 | applet = tag "applet" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:66:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: area :: UI Element | 66 | area = itag "area" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:67:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: audio :: UI Element | 67 | audio = tag "audio" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:68:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: basefont :: UI Element | 68 | basefont = itag "basefont" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:69:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: big :: UI Element | 69 | big = tag "big" | ^^^ src/Graphics/UI/Threepenny/Elements.hs:70:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: blockquote :: UI Element | 70 | blockquote = tag "blockquote" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:71:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: body :: UI Element | 71 | body = tag "body" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:72:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: bold :: UI Element | 72 | bold = tag "b" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:73:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: br :: UI Element | 73 | br = itag "br" | ^^ src/Graphics/UI/Threepenny/Elements.hs:74:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: button :: UI Element | 74 | button = tag "button" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:75:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: canvas :: UI Element | 75 | canvas = tag "canvas" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:76:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: caption :: UI Element | 76 | caption = tag "caption" | ^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:77:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: center :: UI Element | 77 | center = tag "center" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:78:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cite :: UI Element | 78 | cite = tag "cite" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:79:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: code :: UI Element | 79 | code = tag "code" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:80:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ddef :: UI Element | 80 | ddef = tag "dd" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:81:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: define :: UI Element | 81 | define = tag "dfn" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:82:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: div :: UI Element | 82 | div = tag "div" | ^^^ src/Graphics/UI/Threepenny/Elements.hs:83:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: dlist :: UI Element | 83 | dlist = tag "dl" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:84:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: dterm :: UI Element | 84 | dterm = tag "dt" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:85:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: emphasize :: UI Element | 85 | emphasize = tag "em" | ^^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:86:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: fieldset :: UI Element | 86 | fieldset = tag "fieldset" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:87:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: font :: UI Element | 87 | font = tag "font" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:88:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: form :: UI Element | 88 | form = tag "form" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:89:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: frame :: UI Element | 89 | frame = tag "frame" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:90:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: frameset :: UI Element | 90 | frameset = tag "frameset" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:91:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: h1 :: UI Element | 91 | h1 = tag "h1" | ^^ src/Graphics/UI/Threepenny/Elements.hs:92:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: h2 :: UI Element | 92 | h2 = tag "h2" | ^^ src/Graphics/UI/Threepenny/Elements.hs:93:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: h3 :: UI Element | 93 | h3 = tag "h3" | ^^ src/Graphics/UI/Threepenny/Elements.hs:94:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: h4 :: UI Element | 94 | h4 = tag "h4" | ^^ src/Graphics/UI/Threepenny/Elements.hs:95:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: h5 :: UI Element | 95 | h5 = tag "h5" | ^^ src/Graphics/UI/Threepenny/Elements.hs:96:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: h6 :: UI Element | 96 | h6 = tag "h6" | ^^ src/Graphics/UI/Threepenny/Elements.hs:97:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: header :: UI Element | 97 | header = tag "head" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:98:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: hr :: UI Element | 98 | hr = itag "hr" | ^^ src/Graphics/UI/Threepenny/Elements.hs:99:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: img :: UI Element | 99 | img = image | ^^^ src/Graphics/UI/Threepenny/Elements.hs:100:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: image :: UI Element | 100 | image = itag "img" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:101:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: input :: UI Element | 101 | input = itag "input" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:102:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: italics :: UI Element | 102 | italics = tag "i" | ^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:103:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: keyboard :: UI Element | 103 | keyboard = tag "kbd" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:104:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: label :: UI Element | 104 | label = tag "label" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:105:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: legend :: UI Element | 105 | legend = tag "legend" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:106:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: li :: UI Element | 106 | li = tag "li" | ^^ src/Graphics/UI/Threepenny/Elements.hs:107:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: link :: UI Element | 107 | link = tag "link" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:108:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: map :: UI Element | 108 | map = tag "map" | ^^^ src/Graphics/UI/Threepenny/Elements.hs:109:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: meta :: UI Element | 109 | meta = itag "meta" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:110:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: noframes :: UI Element | 110 | noframes = tag "noframes" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:111:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: olist :: UI Element | 111 | olist = tag "ol" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:112:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: option :: UI Element | 112 | option = tag "option" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:113:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: p :: UI Element | 113 | p = tag "p" | ^ src/Graphics/UI/Threepenny/Elements.hs:114:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: paragraph :: UI Element | 114 | paragraph = tag "p" | ^^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:115:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: param :: UI Element | 115 | param = itag "param" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:116:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: pre :: UI Element | 116 | pre = tag "pre" | ^^^ src/Graphics/UI/Threepenny/Elements.hs:117:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: sample :: UI Element | 117 | sample = tag "samp" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:118:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: select :: UI Element | 118 | select = tag "select" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:119:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: small :: UI Element | 119 | small = tag "small" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:120:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: source :: UI Element | 120 | source = tag "source" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:121:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: strong :: UI Element | 121 | strong = tag "strong" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:122:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: sub :: UI Element | 122 | sub = tag "sub" | ^^^ src/Graphics/UI/Threepenny/Elements.hs:123:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: sup :: UI Element | 123 | sup = tag "sup" | ^^^ src/Graphics/UI/Threepenny/Elements.hs:124:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: table :: UI Element | 124 | table = tag "table" | ^^^^^ src/Graphics/UI/Threepenny/Elements.hs:125:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: td :: UI Element | 125 | td = tag "td" | ^^ src/Graphics/UI/Threepenny/Elements.hs:126:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: textarea :: UI Element | 126 | textarea = tag "textarea" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:127:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: th :: UI Element | 127 | th = tag "th" | ^^ src/Graphics/UI/Threepenny/Elements.hs:128:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: thebase :: UI Element | 128 | thebase = itag "base" | ^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:129:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: thehtml :: UI Element | 129 | thehtml = tag "html" | ^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:130:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: span :: UI Element | 130 | span = tag "span" | ^^^^ src/Graphics/UI/Threepenny/Elements.hs:131:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: title_ :: UI Element | 131 | title_ = tag "title" | ^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:132:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tr :: UI Element | 132 | tr = tag "tr" | ^^ src/Graphics/UI/Threepenny/Elements.hs:133:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: tt :: UI Element | 133 | tt = tag "tt" | ^^ src/Graphics/UI/Threepenny/Elements.hs:134:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ul :: UI Element | 134 | ul = tag "ul" | ^^ src/Graphics/UI/Threepenny/Elements.hs:135:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: underline :: UI Element | 135 | underline = tag "u" | ^^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:136:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: variable :: UI Element | 136 | variable = tag "var" | ^^^^^^^^ src/Graphics/UI/Threepenny/Elements.hs:137:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: video :: UI Element | 137 | video = tag "video" | ^^^^^ [24 of 29] Compiling Graphics.UI.Threepenny.DragNDrop ( src/Graphics/UI/Threepenny/DragNDrop.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/DragNDrop.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/DragNDrop.dyn_o ) src/Graphics/UI/Threepenny/DragNDrop.hs:33:5: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding imported from ‘Graphics.UI.Threepenny.Core’ at src/Graphics/UI/Threepenny/DragNDrop.hs:21:1-34 (and originally defined at src/Graphics/UI/Threepenny/Core.hs:317:1-3) | 33 | set v = set' (attr "draggable") $ if v then "true" else "false" | ^^^ src/Graphics/UI/Threepenny/DragNDrop.hs:39:5: warning: [-Wname-shadowing] This binding for ‘set’ shadows the existing binding imported from ‘Graphics.UI.Threepenny.Core’ at src/Graphics/UI/Threepenny/DragNDrop.hs:21:1-34 (and originally defined at src/Graphics/UI/Threepenny/Core.hs:317:1-3) | 39 | set v = set' (attr "ondragstart") $ | ^^^ src/Graphics/UI/Threepenny/DragNDrop.hs:73:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: withDragData :: Event EventData -> Event String | 73 | withDragData = fmap (extract . unsafeFromJSON) | ^^^^^^^^^^^^ [25 of 29] Compiling Graphics.UI.Threepenny.Canvas ( src/Graphics/UI/Threepenny/Canvas.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Canvas.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Canvas.dyn_o ) src/Graphics/UI/Threepenny/Canvas.hs:23:1: warning: [-Wunused-imports] The qualified import of ‘Data.Aeson’ is redundant except perhaps to import instances from ‘Data.Aeson’ To import instances alone, use: import Data.Aeson() | 23 | import qualified Data.Aeson as JSON | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Canvas.hs:243:10: warning: [-Wname-shadowing] This binding for ‘text’ shadows the existing binding imported from ‘Graphics.UI.Threepenny.Core’ at src/Graphics/UI/Threepenny/Canvas.hs:22:1-34 (and originally defined at src/Graphics/UI/Threepenny/Core.hs:150:1-4) | 243 | fillText text (x,y) canvas = | ^^^^ src/Graphics/UI/Threepenny/Canvas.hs:253:12: warning: [-Wname-shadowing] This binding for ‘text’ shadows the existing binding imported from ‘Graphics.UI.Threepenny.Core’ at src/Graphics/UI/Threepenny/Canvas.hs:22:1-34 (and originally defined at src/Graphics/UI/Threepenny/Core.hs:150:1-4) | 253 | strokeText text (x,y) canvas = | ^^^^ [26 of 29] Compiling Graphics.UI.Threepenny.Attributes ( src/Graphics/UI/Threepenny/Attributes.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Attributes.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Attributes.dyn_o ) src/Graphics/UI/Threepenny/Attributes.hs:42:18: warning: [-Wincomplete-uni-patterns] Pattern match(es) are non-exhaustive In a pattern binding: Patterns of type ‘JSON.Result a’ not matched: JSON.Error _ | 42 | from s = let JSON.Success x = JSON.fromJSON s in | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:53:9: warning: [-Wname-shadowing] This binding for ‘name’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Attributes.hs:103:1 | 53 | strAttr name = mkWriteAttr (set' (attr name)) | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:56:9: warning: [-Wname-shadowing] This binding for ‘name’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Attributes.hs:103:1 | 56 | intAttr name = mkWriteAttr (set' (attr name) . show) | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:59:11: warning: [-Wname-shadowing] This binding for ‘name’ shadows the existing binding defined at src/Graphics/UI/Threepenny/Attributes.hs:103:1 | 59 | emptyAttr name = mkWriteAttr (set' (attr name) . f) | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:64:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: action :: WriteAttr Element String | 64 | action = strAttr "action" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:65:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: align :: WriteAttr Element String | 65 | align = strAttr "align" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:66:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: alink :: WriteAttr Element String | 66 | alink = strAttr "alink" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:67:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: alt :: WriteAttr Element String | 67 | alt = strAttr "alt" | ^^^ src/Graphics/UI/Threepenny/Attributes.hs:68:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: altcode :: WriteAttr Element String | 68 | altcode = strAttr "altcode" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:69:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: archive :: WriteAttr Element String | 69 | archive = strAttr "archive" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:70:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: background :: WriteAttr Element String | 70 | background = strAttr "background" | ^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:71:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: base :: WriteAttr Element String | 71 | base = strAttr "base" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:72:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: bgcolor :: WriteAttr Element String | 72 | bgcolor = strAttr "bgcolor" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:73:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: border :: WriteAttr Element Int | 73 | border = intAttr "border" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:74:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: bordercolor :: WriteAttr Element String | 74 | bordercolor = strAttr "bordercolor" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:75:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cellpadding :: WriteAttr Element Int | 75 | cellpadding = intAttr "cellpadding" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:76:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cellspacing :: WriteAttr Element Int | 76 | cellspacing = intAttr "cellspacing" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:77:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: checked_ :: WriteAttr Element Bool | 77 | checked_ = emptyAttr "checked" | ^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:78:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: clear_ :: WriteAttr Element String | 78 | clear_ = strAttr "clear" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:79:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: code_ :: WriteAttr Element String | 79 | code_ = strAttr "code" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:80:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: codebase :: WriteAttr Element String | 80 | codebase = strAttr "codebase" | ^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:81:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: color :: WriteAttr Element String | 81 | color = strAttr "color" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:82:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: cols :: WriteAttr Element String | 82 | cols = strAttr "cols" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:83:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: colspan :: WriteAttr Element Int | 83 | colspan = intAttr "colspan" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:84:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: compact :: WriteAttr Element Bool | 84 | compact = emptyAttr "compact" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:85:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: content :: WriteAttr Element String | 85 | content = strAttr "content" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:86:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: coords :: WriteAttr Element String | 86 | coords = strAttr "coords" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:87:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: enctype :: WriteAttr Element String | 87 | enctype = strAttr "enctype" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:88:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: face :: WriteAttr Element String | 88 | face = strAttr "face" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:89:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: for :: WriteAttr Element String | 89 | for = strAttr "for" | ^^^ src/Graphics/UI/Threepenny/Attributes.hs:90:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: frameborder :: WriteAttr Element Int | 90 | frameborder = intAttr "frameborder" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:91:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: height :: WriteAttr Element Int | 91 | height = intAttr "height" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:92:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: href :: WriteAttr Element String | 92 | href = strAttr "href" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:93:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: hspace :: WriteAttr Element Int | 93 | hspace = intAttr "hspace" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:94:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: httpequiv :: WriteAttr Element String | 94 | httpequiv = strAttr "http-equiv" | ^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:95:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: id_ :: WriteAttr Element String | 95 | id_ = strAttr "id" | ^^^ src/Graphics/UI/Threepenny/Attributes.hs:96:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: ismap :: WriteAttr Element Bool | 96 | ismap = emptyAttr "ismap" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:97:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: lang :: WriteAttr Element String | 97 | lang = strAttr "lang" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:98:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: marginheight :: WriteAttr Element Int | 98 | marginheight = intAttr "marginheight" | ^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:99:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: marginwidth :: WriteAttr Element Int | 99 | marginwidth = intAttr "marginwidth" | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:100:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: maxlength :: WriteAttr Element Int | 100 | maxlength = intAttr "maxlength" | ^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:101:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: method :: WriteAttr Element String | 101 | method = strAttr "method" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:102:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: multiple :: WriteAttr Element Bool | 102 | multiple = emptyAttr "multiple" | ^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:103:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: name :: WriteAttr Element String | 103 | name = strAttr "name" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:104:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: nohref :: WriteAttr Element Bool | 104 | nohref = emptyAttr "nohref" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:105:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: noresize :: WriteAttr Element Bool | 105 | noresize = emptyAttr "noresize" | ^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:106:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: noshade :: WriteAttr Element Bool | 106 | noshade = emptyAttr "noshade" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:107:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: nowrap :: WriteAttr Element Bool | 107 | nowrap = emptyAttr "nowrap" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:108:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rel :: WriteAttr Element String | 108 | rel = strAttr "rel" | ^^^ src/Graphics/UI/Threepenny/Attributes.hs:109:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rev :: WriteAttr Element String | 109 | rev = strAttr "rev" | ^^^ src/Graphics/UI/Threepenny/Attributes.hs:110:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rows :: WriteAttr Element String | 110 | rows = strAttr "rows" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:111:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rowspan :: WriteAttr Element Int | 111 | rowspan = intAttr "rowspan" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:112:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: rules :: WriteAttr Element String | 112 | rules = strAttr "rules" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:113:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: scrolling :: WriteAttr Element String | 113 | scrolling = strAttr "scrolling" | ^^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:114:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: selected :: WriteAttr Element Bool | 114 | selected = emptyAttr "selected" | ^^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:115:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: shape :: WriteAttr Element String | 115 | shape = strAttr "shape" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:116:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: size :: WriteAttr Element String | 116 | size = strAttr "size" | ^^^^ src/Graphics/UI/Threepenny/Attributes.hs:117:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: src :: WriteAttr Element String | 117 | src = strAttr "src" | ^^^ src/Graphics/UI/Threepenny/Attributes.hs:118:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: target :: WriteAttr Element String | 118 | target = strAttr "target" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:119:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: text_ :: WriteAttr Element String | 119 | text_ = strAttr "text" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:120:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: class_ :: WriteAttr Element String | 120 | class_ = strAttr "class" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:121:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: type_ :: WriteAttr Element String | 121 | type_ = strAttr "type" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:122:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: title__ :: WriteAttr Element String | 122 | title__ = strAttr "title" -- ugly, but necessary to avoid conflicts with the window title and the title element | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:123:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: usemap :: WriteAttr Element String | 123 | usemap = strAttr "usemap" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:124:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: valign :: WriteAttr Element String | 124 | valign = strAttr "valign" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:125:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: version :: WriteAttr Element String | 125 | version = strAttr "version" | ^^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:126:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: vlink :: WriteAttr Element String | 126 | vlink = strAttr "vlink" | ^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:127:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: vspace :: WriteAttr Element Int | 127 | vspace = intAttr "vspace" | ^^^^^^ src/Graphics/UI/Threepenny/Attributes.hs:128:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: width :: WriteAttr Element Int | 128 | width = intAttr "width" | ^^^^^ [27 of 29] Compiling Graphics.UI.Threepenny.Events ( src/Graphics/UI/Threepenny/Events.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Events.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Events.dyn_o ) src/Graphics/UI/Threepenny/Events.hs:21:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: silence :: Event a -> Event () | 21 | silence = fmap (const ()) | ^^^^^^^ src/Graphics/UI/Threepenny/Events.hs:30:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: unsafeMapUI :: Element -> (t -> UI b) -> Event t -> Event b | 30 | unsafeMapUI el f = unsafeMapIO (\a -> getWindow el >>= \w -> runUI w (f a)) | ^^^^^^^^^^^ src/Graphics/UI/Threepenny/Events.hs:82:11: warning: [-Wincomplete-uni-patterns] Pattern match(es) are non-exhaustive In a pattern binding: Patterns of type ‘[Double]’ not matched: [] [_] (_:_:_:_) | 82 | where [x,y] = unsafeFromJSON json | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [28 of 29] Compiling Graphics.UI.Threepenny.Widgets ( src/Graphics/UI/Threepenny/Widgets.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Widgets.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny/Widgets.dyn_o ) src/Graphics/UI/Threepenny/Widgets.hs:88:5: warning: [-Wunused-do-bind] A do-notation statement discarded a result of type ‘Element’ Suppress this warning by saying ‘_ <- element list # sink items (map <$> bdisplay <*> bitems)’ | 88 | element list # sink items (map <$> bdisplay <*> bitems) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Widgets.hs:95:21: warning: [-Wunused-matches] Defined but not used: ‘indices’ | 95 | lookupIndex indices Nothing = Nothing | ^^^^^^^ src/Graphics/UI/Threepenny/Widgets.hs:98:5: warning: [-Wunused-do-bind] A do-notation statement discarded a result of type ‘Element’ Suppress this warning by saying ‘_ <- element list # sink UI.selection bindex’ | 98 | element list # sink UI.selection bindex | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Graphics/UI/Threepenny/Widgets.hs:114:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: items :: WriteAttr Element [UI Element] | 114 | items = mkWriteAttr $ \i x -> void $ do | ^^^^^ src/Graphics/UI/Threepenny/Widgets.hs:115:41: warning: [-Wname-shadowing] This binding for ‘i’ shadows the existing binding bound at src/Graphics/UI/Threepenny/Widgets.hs:114:24 | 115 | return x # set children [] #+ map (\i -> UI.option #+ [i]) i | ^ [29 of 29] Compiling Graphics.UI.Threepenny ( src/Graphics/UI/Threepenny.hs, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny.o, /home/simon/src/threepenny-gui/dist-newstyle/build/x86_64-linux/ghc-9.2.1/threepenny-gui-0.9.1.0/build/Graphics/UI/Threepenny.dyn_o ) ```

Of course, not all of these warnings are equally interesting. But some probably are.

My inclination would be to enable -Wall, try to address most of the warnings, and maybe disable certain warnings on a per-file basis, e.g. use -Wno-missing-signatures in src/Graphics/UI/Threepenny/Attributes.hs.

What do you think, @HeinrichApfelmus?

HeinrichApfelmus commented 2 years ago

Phew, good question. The company I currently work for uses -Wall as well, but I'm not sold on its effectiveness. Making sure that the code has no warnings does help with keeping the code tidy, but often at the cost of making it more work to write.

My opinions on specific warnings are:

  1. -Wunused-do-bind — This warning is actually not compatible with the "chain of actions" style that Threepenny-Gui uses, e.g. element x # set attr "foo" # …; I deliberately want to ignore that one.
  2. -Wname-shadowing — Sometimes, this does catch bugs, but the price is that it discourages short names at the top level. For example, path at the top level will likely become getPath in order to have path available in local scopes. I tend to be in favor of ignoring that one.
  3. -Wunused-imports — Without automatic import management by the IDE, this warning slows down development considerably. I tend to ignore it until just before merging a pull request.
  4. -Wincomplete-patterns — This one is ok. Threepenny-GUI does use a lot of partial functions for marshaling, but avoiding them did catch a bug for me once. Adding a _ → error "some more informative message" case is not too bad a solution.
  5. -Wmissing-signatures — I like this one. Sometimes, adding a signature requires adding imports, but that's more of a problem when using explicit import lists (ugh). Of course, in special circumstances, such as the Attributes module, we want to ignore it.
  6. -Wunused-matches — I like this one. Adding a bar _ in front of a name does not hurt.

If you like, feel free to turn on warnings about 3–6 and others that I missed.

sjakobi commented 2 years ago
  1. -Wunused-do-bind — This warning is actually not compatible with the "chain of actions" style that Threepenny-Gui uses, e.g. element x # set attr "foo" # …; I deliberately want to ignore that one.

Yeah, we can turn this off with -Wno-unused-do-binds in the .cabal file.

2. -Wname-shadowing — Sometimes, this does catch bugs, but the price is that it discourages short names at the top level. For example, path at the top level will likely become getPath in order to have path available in local scopes. I tend to be in favor of ignoring that one.

How about renaming the local path to path_? I've seen this style in some places.

3. -Wunused-imports — Without automatic import management by the IDE, this warning slows down development considerably. I tend to ignore it until just before merging a pull request.

I think it can help remove clutter and discover unused dependencies. Note that you can of course temporarily use -Wno-unused-imports for development once we've enabled -Wall.

I agree with your points 4 to 6.

I'm not sure when I'll get to implementing this. I've marked this issue "good first issue" in case someone's interested.

HeinrichApfelmus commented 2 years ago

No rush. 😄 Thanks for looking into this, Simon!