Can anonymous functions be imported into other modules?

Hi all,

I’m learning Elixir/OTP and am stumped by a certain behaviour. I’m declaring an anonymous function in a module, then when I attempt to call that function from another module, I get an UndefinedFunctionError error. I can alias the anonymous function’s module, but cannot even import the function using the syntax import Module, only: [anon_func]. Please see the code below. What gives?

Module that defines anonymous function:
defmodule Servy.PowerNapper do power_nap = fn -> time = :rand.uniform(10_000) :timer.sleep(time) time end end

and the caller module
`
defmodule Servy.PowerNapperClient do
alias Servy.PowerNapper

parent = self()
spawn(fn → send(parent, {:slept, PowerNapper.power_nap.()}) end)

receive do
{:slept, time} → IO.puts “Slept #{time} ms”
end
end
`