{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE UndecidableSuperClasses #-}
module PlutusCore.Builtin.TestKnown
( TestTypesFromTheUniverseAreAllKnown
) where
import PlutusCore.Builtin.KnownType
import PlutusCore.Builtin.KnownTypeAst
import Universe
class (forall tyname. KnownBuiltinTypeAst tyname uni a => KnownTypeAst tyname uni a) =>
ImplementedKnownTypeAst uni a
instance (forall tyname. KnownBuiltinTypeAst tyname uni a => KnownTypeAst tyname uni a) =>
ImplementedKnownTypeAst uni a
class (forall val. KnownBuiltinTypeIn uni val a => ReadKnownIn uni val a) =>
ImplementedReadKnownIn uni a
instance (forall val. KnownBuiltinTypeIn uni val a => ReadKnownIn uni val a) =>
ImplementedReadKnownIn uni a
class (forall val. KnownBuiltinTypeIn uni val a => MakeKnownIn uni val a) =>
ImplementedMakeKnownIn uni a
instance (forall val. KnownBuiltinTypeIn uni val a => MakeKnownIn uni val a) =>
ImplementedMakeKnownIn uni a
class
( uni `Everywhere` ImplementedKnownTypeAst uni
, uni `Everywhere` ImplementedReadKnownIn uni
, uni `Everywhere` ImplementedMakeKnownIn uni
) => TestTypesFromTheUniverseAreAllKnown uni