module C

import Control.Monad.State
import B

-- there is an error in this code, since C doesn't import A, but B relies of A to describe
-- the type 'X'. Idris responds with the following appropriate error message, but takes a long time
-- to figure out what's wrong.
-- Error: While processing right hand side of foo. Undefined name A.AFoo.

foo : X ()
foo =
  do
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
    pure ()
