{-# LANGUAGE TypeFamilies, UndecidableInstances, DataKinds, PolyKinds #-} module Data.Yoko.TypeBasics ( module Data.Yoko.MaybeKind, module Type.Booleans, Proxy(..), Equal, IsPrefixOf, derive, encode ) where import Type.Booleans import Data.Yoko.MaybeKind --import Data.Proxy.TH (Proxy(..)) import Type.Spine import Type.Ord (IsEQ) import Type.Serialize import Type.Ord.SpineSerialize (Compare) data Proxy a = Proxy type Equal a b = IsEQ (Compare a b) type family IsPrefixOf (pre :: *) (s :: *) :: * -- emulated primitive derive n = do d <- spineType n (d ++) `fmap` serializeTypeAsHash n