  We present $L^{\#}$, a new and simple approach to active automata learning.
Instead of focusing on equivalence of observations, like the $L^{\ast}$
algorithm and its descendants, $L^{\#}$ takes a different perspective: it tries
to establish apartness, a constructive form of inequality. $L^{\#}$ does not
require auxiliary notions such as observation tables or discrimination trees,
but operates directly on tree-shaped automata. $L^{\#}$ has the same asymptotic
query and symbol complexities as the best existing learning algorithms, but we
show that adaptive distinguishing sequences can be naturally integrated to
boost the performance of $L^{\#}$ in practice. Experiments with a prototype
implementation, written in Rust, suggest that $L^{\#}$ is competitive with
existing algorithms.
