@rml hm... Perhaps I don't get what do you mean here. What's the difference between a composable and decomposable code?
@dpwiz I would say that composable code implies the ability to design and implement precise program behavior within a given type theory that determines how component programs can and cannot be combined and abstracted to build larger code compositions, and so compossibility here is more or less co-extensive with presentation or knowing and the capacity to present that knowledge in truly transmissible form, while decomposable code eschews presentation for representation, knowing for sharing, theory for praxis, by embracing the absolute minimum criteria of correctness while maintaining a high degree of referential transparency, in order to facilitate a style of programming that emphasizes ease of change in even unanticipated or radical directions through ad-hoc constructions that are easy to tame and refashion due to the homogeneity demanded by the minimum criteria.
was kind of a rant, certainly vague in areas, but I'm arguing for ambiguity and hand-wavy hat tricks over here, after all
@rml This looks like nominal vs structural "styles". Haskell clearly favors the former, but has a lot to work with the latter - Dynamic, Generics, all kinds of "Value" ASTs and coercing/parsing/building to bridge it.
I'm pessimistic, honestly, on the merits of generic structures throughout and usually want to parse them away and the boundary. Thus, it's Haskell for me (:
@dpwiz is nominalism in PL related to nominalism in philosophy, ie things are only generalizable up to their identities? and structuralism as in Platonism? in that case yeah, I'm not a structuralist but rather an orthodox platonist, but I take seriously the idea that programming is first and foremost art rather than science, and so I don't apply the criteria of mathematical platonism to programming
@dpwiz well I know that scheme is highly decomposable from experience. haskell, my experience is quite limited, but it doesn't seem like repurposing haskell code in unanticipated ways is particularly simple from my limited experience.