purescript-0.15.15: tests/purs/passing/DerivingProfunctor.purs
module Main where
import Prelude
import Data.Predicate (Predicate)
import Data.Profunctor (class Profunctor)
import Data.Tuple (Tuple)
import Effect.Console (log)
data Test f a b
= Test0
| Test1 (Predicate a) b
| Test2 Int (forall a. Array a -> Array a)
| Test3 Int (f a b) (f a Int) (f Int b)
| Test4 (Array (a -> Int)) (Tuple b Int)
| Test5 { nested :: Array { x :: f { a :: a } { b :: b } } }
derive instance Profunctor f => Profunctor (Test f)
main = log "Done"