{-# LANGUAGE Arrows #-}

module ShouldCompile where

import Control.Arrow
import Data.Char

f :: ArrowLoop a => a Char Int
f = proc x -> do
	a <- returnA -< ord x
	rec	b <- returnA -< ord c - ord x
		c <- returnA -< chr a
	returnA -< b + ord c
