{-# 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