    {-|
    Copyright  :  (C) 2018, Google Inc
                      2019, Myrtle Software Ltd
                      2023,      QBayLogic B.V.
    License    :  BSD2 (see the file LICENSE)
    Maintainer :  QBayLogic B.V. <devops@qbaylogic.com>

    Generic clock related utilities.
    -}

    {-# LANGUAGE ConstraintKinds #-}
    {-# LANGUAGE FlexibleContexts #-}
    {-# LANGUAGE FlexibleInstances #-}
    {-# LANGUAGE TemplateHaskell #-}
    {-# LANGUAGE TypeFamilies #-}

    {-# OPTIONS_GHC "-Wno-orphans" #-}

    module Clash.Clocks
      ( Clocks(..)
      , ClocksSync(..)
      , ClocksSyncCxt
      , NumOutClocksSync
      ) where

    import Clash.Clocks.Internal
      (Clocks(..), ClocksSync(..), deriveClocksInstances, deriveClocksSyncInstances)
    import Clash.Signal.Internal (Domain, KnownDomain)

    (forall (domIn :: Domain).
     (KnownDomain domIn, ClocksCxt (Clock c1, Signal pllLock Bool)) =>
     Clock domIn -> Reset domIn -> (Clock c1, Signal pllLock Bool))
    -> Clocks (Clock c1, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt (Clock c1, Clock c2, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn -> (Clock c1, Clock c2, Signal pllLock Bool))
    -> Clocks (Clock c1, Clock c2, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Signal pllLock Bool))
    -> Clocks (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
         Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
          Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
         Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
          Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Clock c13, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Clock c13, Clock c14, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Clock c13, Clock c14, Clock c15, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Clock c16,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Clock c16, Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Clock c13, Clock c14, Clock c15, Clock c16, Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
         Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
          Signal pllLock Bool)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksCxt
        (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
         Signal pllLock Bool)) =>
     Clock domIn
     -> Reset domIn
     -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
         Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
         Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
         Signal pllLock Bool))
    -> Clocks
         (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
          Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
          Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
          Signal pllLock Bool)
    forall t.
    (forall (domIn :: Domain).
     (KnownDomain domIn, ClocksCxt t) =>
     Clock domIn -> Reset domIn -> t)
    -> Clocks t
    forall (domIn :: Domain).
    (KnownDomain domIn, ClocksCxt (Clock c1, Signal pllLock Bool)) =>
    Clock domIn -> Reset domIn -> (Clock c1, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn -> (Clock c1, Clock c2, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)
    forall (c1 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn, ClocksCxt (Clock c1, Signal pllLock Bool)) =>
    Clock domIn -> Reset domIn -> (Clock c1, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn -> (Clock c1, Clock c2, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (c18 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (c18 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17, Clock c18,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Clock c17,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Clock c16, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Clock c15, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Clock c14, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Clock c13, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11, Clock c12,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Clock c11,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Clock c10, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Clock c9, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Clock c8, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Clock c7, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5, Clock c6,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Clock c5,
        Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt
       (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Clock c4, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain)
           (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn
    -> (Clock c1, Clock c2, Clock c3, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (c2 :: Domain) (pllLock :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn -> (Clock c1, Clock c2, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksCxt (Clock c1, Clock c2, Signal pllLock Bool)) =>
    Clock domIn
    -> Reset domIn -> (Clock c1, Clock c2, Signal pllLock Bool)
    $cclocks :: forall (c1 :: Domain) (pllLock :: Domain) (domIn :: Domain).
    (KnownDomain domIn, ClocksCxt (Clock c1, Signal pllLock Bool)) =>
    Clock domIn -> Reset domIn -> (Clock c1, Signal pllLock Bool)
    clocks :: forall (domIn :: Domain).
    (KnownDomain domIn, ClocksCxt (Clock c1, Signal pllLock Bool)) =>
    Clock domIn -> Reset domIn -> (Clock c1, Signal pllLock Bool)
    deriveClocksInstances

    type ClocksSyncCxt t (domIn :: Domain) =
      ( KnownDomain domIn
      , ClocksSync t
      , ClocksResetSynchronizerCxt t
      , Clocks (ClocksSyncClocksInst t domIn)
      , ClocksCxt (ClocksSyncClocksInst t domIn)
      )

    type NumOutClocksSync t (domIn :: Domain) =
      NumOutClocks (ClocksSyncClocksInst t domIn)

    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt (Clock c1, Reset c1)) =>
     ClocksSyncClocksInst (Clock c1, Reset c1) domIn
     -> Clock domIn -> (Clock c1, Reset c1))
    -> ClocksSync (Clock c1, Reset c1)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2)) =>
     ClocksSyncClocksInst (Clock c1, Reset c1, Clock c2, Reset c2) domIn
     -> Clock domIn -> (Clock c1, Reset c1, Clock c2, Reset c2))
    -> ClocksSync (Clock c1, Reset c1, Clock c2, Reset c2)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3) domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12,
         Reset c12)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
          Clock c13, Reset c13)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
          Clock c13, Reset c13, Clock c14, Reset c14)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15,
         Reset c15)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
          Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
         Clock c16, Reset c16)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
         Clock c16, Reset c16))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
          Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
          Clock c16, Reset c16)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
         Clock c16, Reset c16, Clock c17, Reset c17)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
         Clock c16, Reset c16, Clock c17, Reset c17))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
          Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
          Clock c16, Reset c16, Clock c17, Reset c17)
    (forall (domIn :: Domain).
     (KnownDomain domIn,
      ClocksResetSynchronizerCxt
        (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
         Clock c16, Reset c16, Clock c17, Reset c17, Clock c18,
         Reset c18)) =>
     ClocksSyncClocksInst
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
       domIn
     -> Clock domIn
     -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
         Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
         Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
         Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
         Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
         Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18))
    -> ClocksSync
         (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
          Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
          Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
          Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
          Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
          Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
    forall t.
    (forall (domIn :: Domain).
     (KnownDomain domIn, ClocksResetSynchronizerCxt t) =>
     ClocksSyncClocksInst t domIn -> Clock domIn -> t)
    -> ClocksSync t
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt (Clock c1, Reset c1)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1) domIn
    -> Clock domIn -> (Clock c1, Reset c1)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1, Clock c2, Reset c2) domIn
    -> Clock domIn -> (Clock c1, Reset c1, Clock c2, Reset c2)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3) domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12,
        Reset c12)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15,
        Reset c15)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)
    forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18,
        Reset c18)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
    forall (c1 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt (Clock c1, Reset c1)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1) domIn
    -> Clock domIn -> (Clock c1, Reset c1)
    forall (c1 :: Domain) (c2 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1, Clock c2, Reset c2) domIn
    -> Clock domIn -> (Clock c1, Reset c1, Clock c2, Reset c2)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3) domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12,
        Reset c12)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15,
        Reset c15)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)
    forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (c18 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18,
        Reset c18)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (c18 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18,
        Reset c18)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18,
        Reset c18)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17, Clock c18, Reset c18)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (c17 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16, Clock c17, Reset c17)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16, Clock c17, Reset c17)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (c16 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
       Clock c16, Reset c16)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15,
        Clock c16, Reset c16)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (c15 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15,
        Reset c15)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15,
        Reset c15)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14, Clock c15, Reset c15)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (c14 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13, Clock c14, Reset c14)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13, Clock c14, Reset c14)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (c13 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
       Clock c13, Reset c13)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12,
        Clock c13, Reset c13)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (c12 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12,
        Reset c12)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12,
        Reset c12)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11, Clock c12, Reset c12)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (c11 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10, Clock c11, Reset c11)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10, Clock c11, Reset c11)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (c10 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
       Clock c10, Reset c10)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9,
        Clock c10, Reset c10)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (c9 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8, Clock c9, Reset c9)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (c8 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7, Clock c8, Reset c8)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7, Clock c8, Reset c8)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (c7 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
       Clock c7, Reset c7)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6,
        Clock c7, Reset c7)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (c6 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5, Clock c6, Reset c6)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (c5 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4, Clock c5, Reset c5)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4, Clock c5, Reset c5)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain) (c4 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
       Clock c4, Reset c4)
      domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3,
        Clock c4, Reset c4)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (c3 :: Domain)
           (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3) domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)) =>
    ClocksSyncClocksInst
      (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3) domIn
    -> Clock domIn
    -> (Clock c1, Reset c1, Clock c2, Reset c2, Clock c3, Reset c3)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (c2 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1, Clock c2, Reset c2) domIn
    -> Clock domIn -> (Clock c1, Reset c1, Clock c2, Reset c2)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt
       (Clock c1, Reset c1, Clock c2, Reset c2)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1, Clock c2, Reset c2) domIn
    -> Clock domIn -> (Clock c1, Reset c1, Clock c2, Reset c2)
    $cclocksResetSynchronizer :: forall (c1 :: Domain) (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt (Clock c1, Reset c1)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1) domIn
    -> Clock domIn -> (Clock c1, Reset c1)
    clocksResetSynchronizer :: forall (domIn :: Domain).
    (KnownDomain domIn,
     ClocksResetSynchronizerCxt (Clock c1, Reset c1)) =>
    ClocksSyncClocksInst (Clock c1, Reset c1) domIn
    -> Clock domIn -> (Clock c1, Reset c1)
    deriveClocksSyncInstances