{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} module Cardano.Api.Internal.Eon.Convert ( Convert (..) ) where import Data.Kind (Type) -- | The Convert class is aimed at exposing a single interface that lets us -- convert between eons. However this is generalizable to any injective -- relationship between types. class Convert (f :: a -> Type) (g :: a -> Type) where convert :: forall era. f era -> g era instance Convert a a where convert :: forall (era :: a). a era -> a era convert = a era -> a era forall a. a -> a id