fn is an unique type (as in used in Option<>)