{-# LANGUAGE DerivingStrategies #-}

module ZkFold.Symbolic.Data.UTCTime where

import           Prelude

import           ZkFold.Symbolic.Compiler                (ArithmeticCircuit)
import           ZkFold.Symbolic.Compiler.Arithmetizable
import           ZkFold.Symbolic.Data.UInt

newtype UTCTime a = UTCTime (UInt 11 a)
    deriving UTCTime a -> UTCTime a -> Bool
(UTCTime a -> UTCTime a -> Bool)
-> (UTCTime a -> UTCTime a -> Bool) -> Eq (UTCTime a)
forall a. Eq a => UTCTime a -> UTCTime a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Eq a => UTCTime a -> UTCTime a -> Bool
== :: UTCTime a -> UTCTime a -> Bool
$c/= :: forall a. Eq a => UTCTime a -> UTCTime a -> Bool
/= :: UTCTime a -> UTCTime a -> Bool
Eq

deriving newtype instance Arithmetic a => SymbolicData a (UTCTime (ArithmeticCircuit a))