packages feed

purescript-0.15.15: tests/purs/failing/4408Cyclic.purs

-- @shouldFailWith HoleInferredType
module Main where

-- Expected:
--
-- aSaki/eSaki -> bNoa~cTowa -> dIbuki
--
-- Only aSaki/eSaki, bNoa, and cTowa is suggested.
--
-- The mutual recursion between bNoa and cTowa
-- ensures they exist "at the same time". dIbuki
-- depends on cTowa, so it's checked much later.

newtype K = K Int

aSaki :: Int -> K
aSaki = K

bNoa :: forall a. a -> K
bNoa a = let _ = cTowa a in K 0

cTowa :: forall a. a -> K
cTowa a = let _ = bNoa a in ?help 0

dIbuki :: Int -> K
dIbuki = bNoa

eSaki :: Int -> K
eSaki = K