packages feed

singletons-base-3.5: tests/compile-and-dump/Promote/T601a.hs

module T601a where

import Data.Kind
import Data.Singletons.Base.TH
import Prelude.Singletons

$(promote [d|
  type MyApplicative :: (Type -> Type) -> Constraint
  class Functor f => MyApplicative f where
    ap :: f (a -> b) -> f a -> f b

    rightSparrow :: f a -> f b -> f b
    rightSparrow x y = ap (id <$ x) y
  |])