module Cubix.Sin.NFData where

import Control.DeepSeq ( NFData(..) )

import Data.Comp.Multi ( Cxt )
import Data.Comp.Multi.Generic ( size )
import Data.Comp.Multi.HFoldable ( HFoldable(..) )



instance HFoldable f => NFData (Cxt h f a l) where
  rnf :: Cxt h f a l -> ()
rnf = Int -> ()
forall a. NFData a => a -> ()
rnf (Int -> ()) -> (Cxt h f a l -> Int) -> Cxt h f a l -> ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Cxt h f a l -> Int
forall (f :: (* -> *) -> * -> *) h (a :: * -> *).
HFoldable f =>
Cxt h f a :=> Int
size