title: Type error resolving infix expression "or" as type std.STANDARD.BOOLEAN
body: <p>I am having trouble understanding the error. For the most part, I understand the issue is in regard to the type of data. Why are some of my data defaulting to BOOLEAN? When it does A AND B it should return a std_logic value correct? Can someone explain what's happening?</p>
  
  <pre><code>library ieee;
  use ieee.std_logic_1164.all;
  
  entity Majority is port (
      A, B, C : in std_logic;
      Y: out std_logic);
  
  end Majority;
  
  
  architecture behavioral of Majority is
      begin
      Y &lt;= '1' when ((A AND B) OR (A AND C) OR (B AND C)) else
           '0';
  
  end architecture behavioral;
  </code></pre>