#pragma once #include #include #include namespace nall { struct Boolean; template struct Natural; template struct Integer; template struct Real; } #include #include #include #include #include #include #include namespace nall { template auto Natural::integer() const -> Integer { return Integer(*this); } template auto Integer::natural() const -> Natural { return Natural(*this); } }