[02:39:25] Why does Z12493 not passing while no errors in detail? [03:03:00] Return value is the same [03:03:05] As expected [03:20:32] Huh, that's weird [03:59:34] Did you see its output? [04:12:29] Ah [04:12:48] The testing function is using boolean inequality [04:13:03] You want it to be different than true but get true [04:17:30] Aleksandr, thanks for the comments! We do actually already have some APIs, https://www.wikifunctions.org/w/api.php [04:17:30] [04:17:32] This is particularly to get the objects out of the system using the fetch API. Many of the tasks you describe you can already do. If you need help with how to use that API, feel free to ask. [04:17:33] [04:17:35] Not everything you describe is already possible, but a lot is. And the data model is rather trivial to map to RDF, I think. [04:17:36] [04:17:38] I'd really like the one thing you described, the capability to share a filled out function call via URL. I think that would be quite cool. [04:56:35] Ah I'm a dumb [09:55:36] Where I can see API SandBox source code? [09:55:38] [09:55:39] https://m.mediawiki.org/wiki/Help:ApiSandbox (re @vrandecic: Aleksandr, thanks for the comments! We do actually already have some APIs, https://www.wikifunctions.org/w/api.php [09:55:41] [09:55:42] This is part...) [10:00:33] https://codesearch.wmcloud.org/ is often helpful for finding where source code is, e.g. https://codesearch.wmcloud.org/core/?q=ApiSandbox (re @Channel_Bot: Where I can see API SandBox source code? [10:00:33] [10:00:35] https://m.mediawiki.org/wiki/Help:ApiSandbox) [10:01:38] includes/specials/SpecialApiSandbox.php and resources/src/mediawiki.special.apisandbox/apisandbox.js look like the most relevant files [10:46:21] How to set input type of this french-language function Z12440 to Z1004? [10:46:21] [10:46:23] This can be a huge part of feature classification (and doesn't even need Wikidata yet). [10:46:24] [10:46:26] For compatibility with simple String type (Z6) we can use tagged unions (https://en.m.wikipedia.org/wiki/Tagged_union) (`string | french string`) [10:46:27] [10:46:29] I know that “only Strings and Booleans for now”, but this additional information we can use just as metadata, not for type inference. (re @wikilinksbot: Z12493 – "voir" belongs to 3rd group) [10:47:05] Did you see who created it? :) (re @Channel_Bot: How to set input type of this french-language function Z12440 to Z1004? [10:47:06] [10:47:08] This can be a huge part of feature classification (and ...) [10:51:50] If you have any questions / suggestions feel free to invoke me! [10:54:59] Yes, I see ) [10:54:59] Do you have an answer? 🤔 (re @cvictorovich: Did you see who created it? :)) [10:58:32] Do you mean modifying input parameters? [10:59:22] I created and am working on them, hence suggestions would be invaluable [11:06:03] As for input type… What can it be besides string? [11:08:20] This is not question about exactly function but about any functions. Is this technically possible on current project phase 🤔 (re @cvictorovich: As for input type… What can it be besides string?) [11:09:59] I don’t think that’s necessary [11:10:28] Under most scenarios [11:11:25] Theoretically yes :) [11:11:26] And this is what about my question. [11:11:27] [11:11:29] Because, for example, this function is useful to only french language, not any other. This is what Type do ;) (re @cvictorovich: As for input type… What can it be besides string?) [11:11:53] Yes, what if someone entered some dirty data… (re @Channel_Bot: Theoretically yes :) [11:11:54] And this is what about my question. [11:11:56] [11:11:57] Because, for example, this function is useful to only french language,...) [11:12:29] Numbers, private Unicode characters… [11:13:23] Maybe we need some prior checks to check if there are any characters not included in French! [11:13:36] Is my opinion reasonable? [11:14:13] For example, Cyrillic letters shouldn’t be admissible [11:15:33] None can predict what data would end users feed into functions [11:15:48] I told about different problem. Complex classification of Wikifunctions by functions type signature. (re @cvictorovich: I don’t think that’s necessary) [11:18:01] This is not a problem. They can put any types of data to input at one's own risk (re @cvictorovich: Yes, what if someone entered some dirty data…) [11:18:49] Does it require alteration of input? (re @Channel_Bot: I told about different problem. Complex classification of Wikifunctions by functions type signature.) [11:19:06] For example, aller -> fr aller [11:19:21] Yes, but this is very different question ) (re @cvictorovich: For example, Cyrillic letters shouldn’t be admissible) [11:21:24] Not data validation. Function classification :) [11:21:24] [11:21:26] This is continuing of this thread: [11:21:27] https://t.me/Wikifunctions/11312 (re @cvictorovich: Does it require alteration of input?) [11:22:05] As for this, we can wait [11:22:33] If we work around it for now, then we need to migrate in the future [11:34:32] I started by adding the german functions' talk pages to https://www.wikifunctions.org/wiki/Category:German (and already ran into the problem that this is now english-centric) (re @vrandecic: We probably could use categories on the talk page. Not a long term solution, but to understand how that might be used) [11:34:38] and I have no idea what any of the things in the category are >_< [11:43:25] We cannot know (re @Nikki: and I have no idea what any of the things in the category are >_<) [11:43:44] that's not true [11:43:57] Because WikiLambda engine restricted [11:44:12] Not directly in these categories (re @cvictorovich: We cannot know) [11:45:52] If we see their descriptions we must go to their pages [11:45:59] it's still not true. all it needs to do is display the label of the object it's the talk page for and we'd know [11:47:51] Why don’t we include categories right in content pages? (re @Nikki: it's still not true. all it needs to do is display the label of the object it's the talk page for and we'd know) [11:48:22] because it doesn't currently let us do that [11:51:11] That’s ultimately restriction inside the engine! (re @Nikki: because it doesn't currently let us do that) [11:51:29] but it's not stopping us from knowing what the things in the category are [11:52:31] even if we could add the categories to the objects directly, the category would display Z123 instead of Talk:Z123, displaying a useful page name is a separate issue from whether we have the categories on the objects or their talk pages [11:53:56] Useful page names can be a variable (re @Nikki: even if we could add the categories to the objects directly, the category would display Z123 instead of Talk:Z123, displaying a ...) [11:54:09] Or an array [11:54:09] a variable where? [11:54:24] Inside the function [11:54:39] we have labels for functions already [11:54:46] And the engine reads it when displaying pages [11:55:23] Yeah, it’s the engine that responsible for reading labels rather than ID when loading a page [11:56:01] based on my experience with wikidata, I don't think it would [11:57:18] (see https://www.wikidata.org/w/index.php?title=Category:Pages_with_maps&pagefrom=Q where mediawiki automatically puts items in a category but the category only displays the page name) [11:58:22] Do you think MW kernel or WikiBase is responsible for that [11:59:01] I think that’s considered a bug, I seem to remember a phab task about it (re @Nikki: (see https://www.wikidata.org/w/index.php?title=Category:Pages_with_maps&pagefrom=Q where mediawiki automatically puts items in ...) [11:59:17] in places where Wikibase *wants* items to be shown in page lists, it shows their label, e.g. [[d:Special:AllPages]] [11:59:18] versus https://www.wikifunctions.org/wiki/Special:AllPages and https://www.wikidata.org/wiki/Special:AllPages which both show labels [11:59:23] jinx ^^ [11:59:24] We stored labels in numerous languages right inside the item, why don’t we just read it when loading a page? [11:59:48] (Do you reckon what I said is useless? [12:00:24] This is exactly what it should be! (re @Nikki: versus https://www.wikifunctions.org/wiki/Special:AllPages and https://www.wikidata.org/wiki/Special:AllPages which both show la...) [12:00:25] yeah, I made it :D https://phabricator.wikimedia.org/T344577 (re @lucaswerkmeister: I think that’s considered a bug, I seem to remember a phab task about it) [12:00:55] (I'm just linking it as an example of how simply putting the page in a category won't automatically show a useful name) [12:01:22] Also, lexèmes can be displayed like this! [13:17:16] made https://www.wikifunctions.org/wiki/User:Nikki/LabelsForCategoryMembers.js to do that now. it's not a great way to do it and I'm sure there's a much better way, but I can't be bothered to look for it right now :P (re @Nikki: it's still not true. all it needs to do is display the label of the object it's the talk page for and we'd know) [13:17:41] (looks like this) : https://tools-static.wmflabs.org/bridgebot/0ae44e0b/file_56064.jpg [13:22:37] also I noticed on the talk page, the label is shown with escaped html, e.g. this for https://www.wikifunctions.org/w/index.php?title=Talk:Z123&action=edit&redlink=1 : https://tools-static.wmflabs.org/bridgebot/4d53db9f/file_56065.jpg [13:44:33] we did talk about similar things [13:44:34] for instance, at one point we considered "monolingual strings" datatype but in the end it's not a good idea as there will always be some ways to mis-use (intentionally or not) a function (for instance, we could also check that the french string is indeed a verb and not a noun or an adjective, and also that it is a non-defective verb and also...) ; in less "elegant" but it's prefe [13:44:35] rable to leave the burden to actually use the function correctly to the user (at least for now, it may change in the future) (re @Channel_Bot: How to set input type of this french-language function Z12440 to Z1004? [13:44:36] [13:44:38] This can be a huge part of feature classification (and ...) [13:46:08] At least we should sanitize input data (re @Nicolas: thaks for the comment, we did talk about similar things [13:46:09] for instance, at one point we considered "monolingual strings" datatype ...) [13:46:41] For example filter out any data except Latin characters [13:47:11] what do you mean ? [13:47:12] plus, "perfect is the enemy of good" ;) (re @cvictorovich: At least we should sanitize input data) [13:47:51] the "1st group in French" function already does it implicitely ;) (re @cvictorovich: For example filter out any data except Latin characters) [13:48:35] All these 3 functions are based on the same logic [13:50:22] if you enter "быть" in Z12436, it will return false, what more sanitizing do one want ;) (re @cvictorovich: For example filter out any data except Latin characters) [13:50:44] Yes, it has been implemented implicitly (re @Nicolas: if you enter "быть" in Z12436, it will return false, what more sanitizing do one want ;)) [13:52:35] so, all good, no ? (re @cvictorovich: Yes, it has been implemented implicitly) [13:52:43] Okay (re @Nicolas: so, all good, no ?) [13:53:06] Again. This is not about validation! And about the classification [of the entire set of functions]. Do you understand the difference? :) (re @Nicolas: thaks for the comment, we did talk about similar things [13:53:08] for instance, at one point we considered "monolingual strings" datatype ...) [13:54:30] different but closely-related ;) (re @Channel_Bot: Again. This is not about validation! And about the classification [of the entire set of functions]. Do you understand the differ...) [13:55:19] and as recenlty said and answered, classification is (sadly) not a priority right now [13:58:03] Looks like we're constantly reinventing RDF (https://ru.wikipedia.org/wiki/Resource_Description_Framework) here. [13:58:05] [13:58:06] My thoughts are that since ZObjects already use JSON at their core, we could extend them to JSON-LD (https://ru.wikipedia.org/wiki/JSON-LD) and start using the JSON-LD API for everything else - talk pages, categories, etc. Then we can safely combine these triplets (related data) with other systems. [13:58:08] [13:58:09] Right now we have a super isolated data model that can’t even help itself. I believe that we should start using Dogfooding products now (and we have everything for this). (re @Nikki: even if we could add the categories to the objects directly, the category would display Z123 instead of Talk:Z123, displaying a ...) [14:03:24] "dogfooding" can only help a little here, sure there is objects for language but for most functions there is no relevant objects [14:03:24] better to wait, see what are the actual needs from the community and then implement a good and useful system (re @Channel_Bot: Looks like we're constantly reinventing RDF here. [14:03:26] [14:03:27] My thoughts are that since ZObjects already use JSON at their core, we could ...) [14:04:01] that said, I agree with the general idea, we need better structuration for functions (and better tools too) [14:05:21] a simple example: how many functions is there right now? how much without test or implementation? or with unconnected test or implementation? this seems basic but I don't think it's currently easily knowable [14:06:03] Many or not? I don't understand. (re @Nicolas: a simple example: how many functions is there right now? how much without test or implementation? or with unconnected test or im...) [14:06:43] said in an other way: "what is the number of function ?" (re @Channel_Bot: Many or not? I don't understand.) [14:07:22] And why this question? I didn't understand the context. (re @Nicolas: said in an other way: "what is the number of function ?") [14:08:42] it's a basic metric [14:08:42] the context is knowing what we have (before going in details of classification, we need to know the total/global first) (re @Channel_Bot: And why this question? I didn't understand the context.) [14:10:12] I think the expectation is that a properly evolved hierarchy of types will do most of the classification. Custom types are an urgent need; the validation is then in the type. A function that determines which conjugation should apply to a French verb would have an input type like “French infinitive verb form”. A string would not be an instance of that type if it did not pass t [14:10:14] he validation defined by the validator for that type. [14:10:46] for instance, I created around 50 functions for Breton language, in the absolute it's a very low number, I plan to created *a lot* more [14:10:47] but relatively, what percent of the total is it? (around ~25 % I guess but I can make that guess only because I spent a lot of time on Wikifunctions, a counting tool would be nice) [14:12:29] for the general idea, I agree [14:12:30] but how would you do it? (re @Al: I think the expectation is that a properly evolved hierarchy of types will do most of the classification. Custom types are an ur...) [14:13:28] plus, the function already implictely check that : if it's not the right type, it returns false, classification or validation would be mostly redundant (re @Al: I think the expectation is that a properly evolved hierarchy of types will do most of the classification. Custom types are an ur...) [14:13:58] As a user (and as a member of that very community), at the moment I absolutely do not need to know how many functions there are. My task is to make a selection of all functions related to the Russian language and start working with them. [14:13:59] [14:14:00] But now I can’t do this, because the search is only textual and has no ability to use even the existing ZObject Z1005. [14:14:02] [14:14:03] This is specifically my user story right now. (re @Nicolas: it's a basic metric [14:14:05] the context is knowing what we have (before going in details of classification, we need to know the total/gl...) [14:14:06] For they only return true under limited circumstances (re @Nicolas: plus, the function already implictely check that : if it's not the right type, it returns false, classification or validation wo...) [14:14:08] Right? [14:14:28] exactly (re @cvictorovich: Right?) [14:16:41] yes, I also have the same need and others needs (both equally valid) [14:16:42] PS: for Russian, the selection is empty right now (re @Channel_Bot: As a user (and as a member of that very community), at the moment I absolutely do not need to know how many functions there are....) [14:17:58] my point is just : right now we don't have any tool to retrieve manage the existing data of function, it seems to me to be a first step before adding tool to manage data we don't have [14:18:14] It looks like there are 63 Breton functions out of a total of 558. [14:18:30] how do you know? (re @Al: It looks like there are 63 Breton functions out of a total of 558.) [14:19:17] I assumed the word “Breton” would occur in the function name (in English) 😎 [14:19:58] Maybe creating Russian conjugation functions is a suitable task for @alexander_mart [14:20:08] not-bad-but-not-so-good assumption, at the beggining I probably have forgotten to add it :/ (re @Al: I assumed the word “Breton” would occur in the function name (in English) 😎) [14:21:31] what tool did you use : the search engine or something else? [14:21:32] https://www.wikifunctions.org/w/index.php?search=Breton&title=Special%3ASearch&ns0=1 gives 146 results (re @Al: I assumed the word “Breton” would occur in the function name (in English) 😎) [14:22:17] (and only 15 for https://www.wikifunctions.org/w/index.php?search=brezhoneg&title=Special:Search&profile=advanced&fulltext=1&ns0=1 I see that I need to add names in Breton :/ ) [14:22:54] https://www.wikifunctions.org/wiki/Special:ListObjectsByType/Z8 gives you just the functions [14:24:37] Chinese language don’t have conjugations… [14:24:45] ah true, I forgot about that page (re @Al: https://www.wikifunctions.org/wiki/Special:ListObjectsByType/Z8 gives you just the functions) [14:25:41] most languages don't have verb conjugation [14:25:42] meanwhile Breton has preposition conjugation :P [14:25:44] natural language are tricky (re @cvictorovich: Chinese language don’t have conjugations…) [14:26:38] Still I dare say that nobody here reads Inuktitut or Cree [14:27:43] Nobody knows about details about these tricky languages [14:31:39] 😏 Carefully! I think I wrote quite a bit about it a couple of years ago on Meta. I’ll see if I can find it. (re @Nicolas: for the general idea, I agree [14:31:39] but how would you do it?) [14:32:13] May be not empty, but we just don't see it! For example: [14:32:14] [14:32:15] 1. Try to search functions related with french natural language (Q150) [14:32:17] [14:32:18] Search results: french — 22 [14:32:20] https://www.wikifunctions.org/w/index.php?limit=500&offset=0&profile=default&search=french&title=Special:Search&ns0=1 [14:32:21] [14:32:23] Search results: français — 12 [14:32:24] https://www.wikifunctions.org/w/index.php?search=fran%C3%A7ais&title=Special:Search&profile=advanced&fulltext=1&ns0=1 [14:32:26] [14:32:27] [14:32:29] 2. Try to search functions related with russian natural language (Q7737) [14:32:30] [14:32:32] Search results: russian — 2 [14:32:33] https://www.wikifunctions.org/w/index.php?search=russian&title=Special%3ASearch&ns0=1 [14:32:35] [14:32:36] Search results: русский — 1 [14:32:38] https://www.wikifunctions.org/w/index.php?search=русский&title=Special:Search&profile=advanced&fulltext=1&ns0=1 [14:32:39] [14:32:41] [14:32:42] We receive a different number of search results, and we already right now have a problem with language bubbles inside project which goal is a break international edges and this bubbles! Technically we can say many of causes, one and another, but may be this is just an our absolete thinking? In same time, it's very bad situation about project marketing. And this is what worries me. [14:32:44] [14:32:45] I really don’t want to become another “template” engine for Wikipedia, a niche product, I want to fulfill the goal of revolutionizing the idea of a language-independent representation of knowledge using a meta-language of relationships between concepts through functions. After all, this is all the grace! (re @Nicolas: yes, I also have the same need and others needs (both equally valid) [14:32:47] PS: for Russian, the selection is empty right now) [14:35:50] Share it there please. I want to read this too. (re @Al: 😏 Carefully! I think I wrote quite a bit about it a couple of years ago on Meta. I’ll see if I can find it.) [14:39:21] https://meta.wikimedia.org/wiki/Talk:Abstract_Wikipedia/Object_creation_requirements [14:49:57] I started collect resources about working on russian-language functions on my talk-page: [14:49:57] https://www.wikifunctions.org/wiki/User:Alexander-Mart-Earth (re @Channel_Bot: May be not empty, but we just don't see it! For example: [14:49:59] [14:50:00] 1. Try to search functions related with french natural language (Q150)...) [15:31:57] Do we have `Tokenizer` (or `Split_by_spaces`) function? (Inverse action of Z10000) [15:37:15] I remember this... Not sure how it's helpful (re @Al: https://meta.wikimedia.org/wiki/Talk:Abstract_Wikipedia/Object_creation_requirements) [15:46:46] New suggest of function: `tokenizer` (split string by spaces) → List [15:46:47] https://www.wikifunctions.org/w/index.php?title=Wikifunctions:Suggest_a_function&diff=prev&oldid=68434 [15:46:48] [15:46:50] JS implementation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split [15:47:03] dogfooding would mean using wikibase (re @Channel_Bot: Looks like we're constantly reinventing RDF here. [15:47:05] [15:47:06] My thoughts are that since ZObjects already use JSON at their core, we could ...) [15:47:40] Yes, Wikibase or... Wikifunctions! :) (re @Nikki: dogfooding would mean using wikibase) [15:51:02] creating a new way to add structured data to mediawiki pages instead of using what we already made does not really seem like dogfooding [15:52:54] and if you're making something that isn't wikibase, you now have to come up with a new interface for selecting predicates and values, a new place to store the definitions of those predicates and values... [15:54:58] it needs a list datatype for the output, so probably not (and if it exists, it has the wrong datatype and/or is not what you look for) (re @Channel_Bot: Do we have Tokenizer (or Split_by_spaces) function? (Inverse action of Z10000)) [15:56:08] @alexander_mart but we do have functions like Z11412 and Z11416 (which are specific subcases) [16:16:10] Yes. I didn't find the list type too. (re @Nicolas: it needs a list datatype for the output, so probably not (and if it exists, it has the wrong datatype and/or is not what you loo...) [16:17:35] obviously, it doesn't exist yet (re @Channel_Bot: Yes. I didn't find the list type too.) [16:18:21] Tell me where to read, if you know, what’s the problem with adding the “List” type? (re @Nicolas: it needs a list datatype for the output, so probably not (and if it exists, it has the wrong datatype and/or is not what you loo...) [16:19:08] there is no problem, it's just a work in progress (re @Channel_Bot: Tell me where to read, if you know, what’s the problem with adding the “List” type?) [16:19:32] Wikifunctions is a brand new projects where *everything* is still in the process of being built [16:19:52] It’s not very helpful until we have custom types and connection to Wikidata. But if you have the concept of the specific type in mind, you can at least document what it would be (“French infinitive verb form”, for example). Then you could search on a very specific text string that corresponds to the explicit type and find functions that have arguments with such a type. (re [16:19:53] @Nicolas: I remember this... Not sure how it's helpful) [16:22:00] I meant: I'm not sure the idea of "an plethora of specific datatype" is a good idea [16:22:00] in that case, I could ask for a "French infitive form of the 1st group" (making the function "does it belong to the 1st group" useless) (re @Al: It’s not very helpful until we have custom types and connection to Wikidata. But if you have the concept of the specific type in...) [16:34:57] It wouldn’t be useless, it would become the validator for that type. If it’s not useful, we presumably wouldn’t do it. But if a function only works for particular types of input, I would argue that is sufficient reason to have an explicit type for that. On the face of it, I would think “French infinitive verb form” is a useful type, whereas “French infinitive verb fo [16:34:59] rm of the first group” is a less useful type (because I can’t think of a function that would operate only over that type). (re @Nicolas: I meant: I'm not sure the idea of "an plethora of specific datatype" is a good idea [16:35:00] in that case, I could ask for a "French infi...) [16:36:37] hmm... I need to think of practical uses... not sure to see the need, nor the way to do it... (re @Al: It wouldn’t be useless, it would become the validator for that type. If it’s not useful, we presumably wouldn’t do it. But if a ...) [17:55:29] Would you have used Z11 rather than Z6, if it had been possible? Would you create “Breton text”, if you could? (re @Nicolas: hmm... I need to think of practical uses... not sure to see the need, nor the way to do it...) [19:23:27] Probably not, I don't really see the advantage (re @Al: Would you have used Z11 rather than Z6, if it had been possible? Would you create “Breton text”, if you could?) [20:57:25] I try to parse the Wikifunctionsdump at the moment. I want to extract functions out of the Wikifunctionsdump and want to check now if I found all Z-Objects. Is there a counter for Z-IDs. How many Z-IDs are already assigned. I found the following page and so I know that the highest Z-ID is much higher as the number of Z-IDs. [20:57:43] https://www.wikifunctions.org/wiki/Wikifunctions:Reserved_ZIDs [21:32:28] I hope someday this project will recover from these(sure the person/contributor who added them isn't to blame at all, more on what tools wikifunctions provides to contributors, or maybe the missing collaboration and coordination, or maybe nothing really) : https://tools-static.wmflabs.org/bridgebot/2b39e800/file_56073.jpg [21:44:55] There are 558 functions (according to https://www.wikifunctions.org/wiki/Special:ListObjectsByType/Z8) and 3712 content pages (according to https://www.wikifunctions.org/wiki/Special:Statistics). (re @Hogü-456: I try to parse the Wikifunctionsdump at the moment. I want to extract functions out of the Wikifunctionsdump and want to check n...) [22:26:06] I still don't think it makes sense to worry about the string handling of functions which shouldn't even be using strings. we'll want to go through all of them anyway once we have support for numbers, I assume, and remove all that extra code (re @ebraminio: I hope someday this project recovers from these [22:26:08] [22:26:09] (sure the person/contributor who added them isn't to blame at all, more on what...) [22:31:21] and once we have that, you'll be able to make some string to/from float functions that have perfect i18n support that everyone can use :P [23:17:46] Exactly. I'm not a big fan of all the number functions cropping up, but I understand why it's happening. Once we have proper support for types, including parsers and renderers, it should become possible to have proper support for i18n for input and output [23:20:30] I also don't see why those functions had to be created already. is anyone using these thin wrappers over JS standard library functions and basic operators? [23:21:44] (because if they are, it makes it harder for us to correct the type of the functions later without breaking those users. so I'm worried that we'll instead end up with a separate, properly typed "sin" function, say, and a string-typed version with a lower Z-id that really only exists for historical reasons) [23:48:16] yeah, I don't want that to happen either. I'd be fine with saying that anyone who wants to create/use a function with the wrong types in order to have it sooner should be prepared for it to break eventually (re @lucaswerkmeister: (because if they are, it makes it harder for us to correct the type of the functions later without breaking those users. so I'm ...) [23:49:49] it would be good to make it clearer in the descriptions when it's only temporarily using strings, though