title: No feasible entries for infix operator "-"
body: <p>I'm a beginner in VHDL.
  Following is my code of a arithmetic extender (a part of my ALU design)</p>
  
  <pre><code>library ieee;
  use ieee.std_logic_1164.all;
  use ieee.std_logic_arith.all;
  use ieee.numeric_std.all;
  
  entity arith_extd is port (
      m,s1,s0 : in std_logic; -- control signals
      A,B     : in std_logic; -- Full adder inputs
      O       : out std_logic -- Cout
  );
  end arith_extd; 
  
  architecture logic_1 of arith_extd is
  begin
      o &lt;= ((A - 1) and (not m) and (not s0) and (not s1))
          or ((A + B) and (not m) and  s0 and (not s1))
          or ((A + (not B) + 1 )and (not m) and  (not s0 )and s1) 
          or ((A - 1) and (not m) and s0 and s1 );
  end logic_1;
  </code></pre>
  
  <p>after compiling the following errors m coming across for the operators(+,-)and "and":</p>
  
  <pre><code>Error: F:/arith_ex.vhd(16): No feasible entries for infix operator "-".
  Error: F:/arith_ex.vhd(16): Bad expression in left operand of infix expression "and"
  Error: F:/arith_ex.vhd(18): Bad expression in left operand of infix expression "+".
  </code></pre>