Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

-Wall #261

Open
sjakobi opened this issue Nov 11, 2021 · 3 comments
Open

-Wall #261

sjakobi opened this issue Nov 11, 2021 · 3 comments

Comments

@sjakobi
Copy link
Collaborator

sjakobi commented Nov 11, 2021

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
Copy link
Owner

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
Copy link
Collaborator Author

sjakobi commented Nov 12, 2021

  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
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants