ее реализация на haskell(какие-то библиотеки например)?
в чем должно заключаться объединение? приведите пример
{-#Language AllowAmbiguousTypes,GADTs,TypeFamilies,PolyKinds,DataKinds,KindSignatures#-} import Data.Kind class DMonad (m :: k -> Type -> Type) where type Return (t :: Type) :: k return' :: a -> m (Return a) a type Bind (p1 :: k) (p2 :: k) :: k bind' :: m p1 a -> (a -> m p2 b) -> m (Bind p1 p2) b data MaybeDT = JustDT|NothingDT data DMaybe :: MaybeDT -> Type -> Type where DJust :: a -> DMaybe JustDT a DNothing :: DMaybe NothingDT a instance DMonad DMaybe where type (Return t) = JustDT return' x = DJust x type Bind JustDT JustDT = JustDT type Bind JustDT NothingDT = NothingDT type Bind NothingDT JustDT = NothingDT type Bind NothingDT NothingDT = NothingDT bind' (DJust a) f = f a bind' _ _ = DNothing Вроде в идеале оно должно быть как-то так(инстанс для Maybe),но компилятор выдает ошибку...
Обсуждают сегодня