You probably want this:

```
def ceil(num) when is_integer(num), do: num
def ceil(num) when is_float(num) do
  ...
end
```

This way, if anything else besides float/integer is given, it will raise like `:erlang.round` does.