pub fn expry_type_from_bytecode<'b, 'c>(
    bytecode: BytecodeRef<'b>,
    types: &[&ExpryType],
    custom_functions: &BTreeMap<Key<'_>, (Vec<ExpryType>, ExpryType)>,
    allocator: &mut MemoryScope<'c>
) -> Result<(ExpryType, Vec<ExpryTypeWarning<'b>>), TypeError<'b>>
where 'c: 'b,