thenFC  :: FCode a -> (a -> FCode c) -> FCode c
thenFC (FCode m) k = FCode $
        \info_down state ->
            case m info_down state of
              (# m_result, new_state #) ->
                 case k m_result of
                   FCode kcode -> kcode info_down new_state
thenFC  :: FCode a -> (a -> FCode c) -> FCode c
thenFC (FCode m) k = FCode $
        \info_down state ->
            case m info_down state of
              (# m_result, new_state #) ->
                 case k m_result of
                   FCode kcode -> kcode info_down new_state
thenFC (FCode m) k = FCode $
        \info_down state ->
            case m info_down state of
              (# m_result, new_state #) ->
                 case k m_result of
                   FCode kcode -> kcode info_down new_state